一、设计模式六大原则
1、开闭原则
对扩展开放,对修改关闭。 需求改变时,通过拓展模块来满足模块新需求。而不是修改模块的代码。通过抽象来实现开闭原则,抽象所有行为,对具体的行为进行实现。如果行为有改变可直接在另外实现一个类。
2、里氏替换原则
对开闭原则的补充。继承复用的基石。任何子类存在的地方,父类也可以存在。保证父类真正被复用。尽量从抽象继承。如果破坏了LSP 有两种办法修复:1)创建一个抽象类C,作为两个类的父类,将两个类的共同行为移到C中。2)将继承关系改为持有关系。
3、依赖倒置原则
程序要依赖抽象,而不是具体实现。对抽象进行编程,降低耦合。
4、接口隔离原则
类不依赖不需要的接口,一个类对另一个类的依赖建立最小接口上。使用多个专业的接口好过一个总的接口。
5、单一职责原则
就一个类来说,应该仅有一个引起它变化的原因。
6、迪米特法则
一个实体应该尽少与其他实体通信。如果可以通过第三者进行调用通信。松耦合、利于复用。
7、合成复用原则
优先使用合成和聚合(持有对象)避免继承导致最后生成一个巨大的类。
二 设计模式分类
创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。
结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。
行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。