设计模式的学习

 

一、单一原则

二、开放封闭 :为了满足开闭原则,需要对系统进行抽象化设计

三、里氏替换 : 可以很容易实现同一个父类下各个子类的替换,客户端可以毫不察觉

四、依赖倒置 :抽象不应该依赖细节,细节应该依赖于抽象

五、接口隔离 :

六、迪米特法则 :对象与对象之间避免少的方法来关联

七、工厂模式

  1.简单工厂

  2.工厂方法 :适用于创建大量的对象,关注于产品等级结构    产品等级结构理解为不同的厂商同一个产品(方法)

  3.抽象工厂 :适用于创建大量的对象,关注于产品族             产品族理解为同一个厂商不同的产品(方法)

  

八、建造者模式 : 通过创建建造者对象通过链式调用,传入简单的参数来处理内部复杂的方法

九、单例模式 : 这里面会有指令重排序问题

  正常顺序是:1.分配内存

                    2.初始化对象

        3.把对象指向内存

 

       指令重排序的图

十、原型模式 :适用于类初始化消耗大量资源、构造函数比较复杂,它不会调用构造器,直接去深克隆或者浅克隆

  优点 : 原型模式比new一个资源性能高,创建简化过程

  缺点 :必须在Object函数里面重新clone(克隆)的方法

  额外知识点:深拷贝、浅拷贝的区别

        深拷贝:它拷贝的是对象的里面的内容

        浅拷贝:它拷贝的是对象的创建的地址

十一、外观模式 : 子系统复杂,通过外观模式提供简单的接口调用子系统。

                           就是把复杂的子系统的方法合并成一个外观方法供外面使用,以供简便

十二、装饰者模式 : 给对象添加功能,可以动态生成和者取消

     首先定义抽象实体,定义一个实体去继承抽象实体,再定义抽象装饰者继承抽象实体,再定义装饰者实体继承抽象装饰者,这样就可以动态添加装饰方法

十三、模版模式

十四、组合模式  这两个需要学习

 

posted on 2020-02-27 19:17  zhang11111wei  阅读(107)  评论(0编辑  收藏  举报

导航