版权声明:之江学院 黄日超 https://blog.csdn.net/weixin_41474319/article/details/82971267
设计模式大纲
- 对接口编程而不是实现编程
- 优先使用对象组合而不是继承
- 设计模式提供软件开发常面问题的最优解
- 23种设计模式分为Creational Paterns,Structural Patterns,Behavioral Patterns
设计模式六大原则
- 开闭原则
程序要想易拓展,必须支持热拔插,用接口和抽象类实现功能拓展,不许修改源码
- 里氏替换原则
多态核心思想.用于实现开闭原则.任何父类能出现的地方,子类一定能出现且不出问题.
- 依赖倒转
针对接口编程,依赖于抽象而不是具体
- 接口隔离原则
将功能拆成多个相互隔离的接口.降低类之间的耦合度.
- 迪米特法则,最少知道
一个实体最好尽可能少地与其他实体发生作用,少用其他实体或少被其它实体用
- 合成复用原则(单一职责)
继承是耦合度最高的一种关系,严重破坏高内聚低耦合的设计.我们要尽可能使用合成/聚合,真要继承最好只继承抽象类.一个内聚的类最好只有一个引起它变化的外在原因.内聚性不强的就不要写到一个类中.
精简版:设计模式就是讲如何更好地搞对象
创建型:对象怎么来的
结构型:对象和谁有关系
行为型:对象与对象在干嘛
J2EE模式:表示层,对象合起来要干嘛,行为型的升级.
- SRP 尽量聚合/组合,继承抽象类,一个接口对应一种变化
- OCP 热拔插,提高可拓展.需要用到LSP,DIP,SRP
- LSP 多态,父子类相互转型
- DIP 针对接口编程,内部实现无论怎么改,接口输出不变,掉用该接口的类就不会变
- ISP 接口要隔离,不同的功能要写成不同的接口,单独设计.
- DP/LKP 最少知道,即少出现别的类的实体