设计模式的学习
一、单一原则
二、开放封闭 :为了满足开闭原则,需要对系统进行抽象化设计
三、里氏替换 : 可以很容易实现同一个父类下各个子类的替换,客户端可以毫不察觉
四、依赖倒置 :抽象不应该依赖细节,细节应该依赖于抽象
五、接口隔离 :
六、迪米特法则 :对象与对象之间避免少的方法来关联
七、工厂模式
1.简单工厂
2.工厂方法 :适用于创建大量的对象,关注于产品等级结构 产品等级结构理解为不同的厂商同一个产品(方法)
3.抽象工厂 :适用于创建大量的对象,关注于产品族 产品族理解为同一个厂商不同的产品(方法)
八、建造者模式 : 通过创建建造者对象通过链式调用,传入简单的参数来处理内部复杂的方法
九、单例模式 : 这里面会有指令重排序问题
正常顺序是:1.分配内存
2.初始化对象
3.把对象指向内存
指令重排序的图
十、原型模式 :适用于类初始化消耗大量资源、构造函数比较复杂,它不会调用构造器,直接去深克隆或者浅克隆
优点 : 原型模式比new一个资源性能高,创建简化过程
缺点 :必须在Object函数里面重新clone(克隆)的方法
额外知识点:深拷贝、浅拷贝的区别
深拷贝:它拷贝的是对象的里面的内容
浅拷贝:它拷贝的是对象的创建的地址
十一、外观模式 : 子系统复杂,通过外观模式提供简单的接口调用子系统。
就是把复杂的子系统的方法合并成一个外观方法供外面使用,以供简便
十二、装饰者模式 : 给对象添加功能,可以动态生成和者取消
首先定义抽象实体,定义一个实体去继承抽象实体,再定义抽象装饰者继承抽象实体,再定义装饰者实体继承抽象装饰者,这样就可以动态添加装饰方法
十三、模版模式
十四、组合模式 这两个需要学习
posted on 2020-02-27 19:17 zhang11111wei 阅读(107) 评论(0) 编辑 收藏 举报