• java和设计模式(创建模式)


    【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】

            有过软件开发经验的同学都知道,软件开发功能怎么都能完成。但是如果需要在软件上面不断做需求变更和重构,这就变得好复杂了。对于这些变更,如果只是硬编码去解决,那么代码就会写的越来越脏,直到不能维护。如果用一定的套路去重构接口,这样才能在快速响应客户需求的同时,还能保证软件的质量要求。

            上面说到的套路,就是设计模式。说到设计模式,很多人都会想到《设计模式》这本书,对于开发经验不是很足的同学,确实有点晦涩难懂。所以,还是建议大家有了一定开发经验再看这本书。

            设计模式一般分成是三类,一类是对象如何创建;一类是如果用类和对象创建更大的对象;一类是不同对象之间如何交互。今天主要讨论对象如何创建。

    1、基础类图 

            说明设计模式比较好的方法就是画类图,上图就是一个简单的类图。第一行是类名;第二行是变量;第三行是函数名。如果前面是-,代表是private变量。如果是+,代表是public。

    2、设计模式和编程语言

            设计模式只是代表一种经验总结,和具体的编程语言没有关系。很多人认为,只能用高级语言才能实现设计模式。其实不然,比如c,也可以实现设计模式。在linux kernel中,其实就有很多的地方用了设计模式,只是大家比较少注意而已。

    3、第一个模式,单例模式

            单例模式是笔试、面试中经常用到的一个模式。这种模式其实和现实场景是分不开的,比如一个学校只能有一个校长,一个医院只能有一个院长,一个城市只能有一个市长,这都是一个道理。学生应聘的时候,考23个模式太多,所以常用来考试的就是单例模式了。

    4、原型模式

            原型模式,顾名思义,就是希望克隆一个一模一样的对象,有点类似于c++里面的拷贝构造函数。如果画成图,可以这么来表示,

    5、简单工厂

            简单工厂是实际应用中出现频率比较高的模式。假设自己编写一个音乐播放器,那么势必要支持各种各样的文件格式。为了提炼出主流程,我们其实可以提炼出公共接口,比如打开文件、关闭文件、解码文件、时间跳跃等等。如果是工厂生产的话,我们可以这么提炼,

    6、工厂方法

            工厂方法相比较简单工厂而言,要更复杂一点。简单工厂可能只生产一种商品,而工厂方法是有多个工厂,生产多个商品。假设有商品A1、A2、B1、B2,那么工厂1生产A1和B1,工厂2生产A2和B2。可以通过一个图来表示,

    7、建造者模式

            建造者模式之前我也不是很明白,直到后来我想到了一汽的案例,就一下子明白了。熟悉汽车的朋友都知道,奥迪和迈腾都属于大众公司。但是大家不太熟悉的时候,很多时候这两款车是共线生产的。比如一样的发动机,一样的变速箱,一样的底盘,一样的轮胎等等。所以,不管品牌如何,他们其实是同一个工厂生产的,只是最后产品的贴牌不一样。

            回到设计模式,其实就好比具体生产的对象是一样的,但是生产的品牌是不一样的。如果画成图,可以这么来画,

    8、其他

            关于设计模式这块,我的经验就是反复想、反复试,写错了、理解错了都不是事。哪怕一个模式学了几遍、十几遍都不能理解,也没关系,只要继续尝试,总有理解的时候。此外即使暂时理解不了,后面软件开发多了,也自然而然就会理解的。

  • 相关阅读:
    小程序自学教程
    Logback日志配置
    vue双向绑定的原理和使用
    Windows下安装Miniconda及配置和简单使用
    基于图数据库的元数据血缘关系分析技术研究与实践
    前端自动脚本中常见的几个问题,你遇到了吗?
    【Java进阶】字符串和常见集合
    从零开始掌握 Java Blade 框架:快速 Web 应用开发之旅
    [工业自动化-23]:西门子S7-15xxx编程 - 软件编程 - 西门子PLC人机界面交互HMI功能概述、硬件环境准备、软件环境准备
    力扣第459题 重复的子字符串 巧用erase find c++注释版
  • 原文地址:https://blog.csdn.net/feixiaoxing/article/details/125881803