二十三种设计模式总结
设计模式列表
创建型模式 | 结构型模式 | 行为型模式 |
---|---|---|
1.Abstract Factory(抽象工厂) | 1.Adapter(适配器) | 1.Chain of Responsibility(责任链模式) |
2.Factory Method(工厂模式) | 2.Bridge(桥接模式) | 2.Command(命令模式) |
3.Builder(构建器模式) | 3.Composite(组合模式) | 3.Interpreter(解释器) |
4.Prototype(原型模式) | 4.Decorator(装饰器模式) | 4.iterator(迭代器模式) |
5.Singleton(单例模式) | 5.Facade(外观模式) | 5.Mediator(中介模式或者调停者模式) |
6.Flyweight(享元模式) | 6.Memento(备忘录模式) | |
7.proxy(代理模式) | 7.Observer(观察者模式) | |
8.state(状态模式) | ||
9.strategy(策略模式) | ||
10.Template Method(模板方法模式) | ||
11.Visitor(访问者模式) |
指导思想
- 可维护性 Maintainability
- 修改功能,需要改动的地方越少,可维护性越好
- 可复用性 Reusability
- 代码可以用被以后重复利用
- 写出自己总结的类库
- 可扩展性 Extensibility/Scalability
- 添加功能无需修改原来的代码
- 灵活性 flexibility/mobility/adaptability
- 代码接口可以灵活调用
面向对象的六大原则
- 单一职责原则(Single Responsibility Principle)
- 一个类别太大,别太累,负责单一的职责
- Person
- PersonManager - 高内聚,低耦合
- 一个类别太大,别太累,负责单一的职责
- 开闭原则(open closed Principle)
- 对扩展开放,对修改关闭
- 尽量在不修改原来代码的情况下进行扩展
- 抽象化,多态是开闭原则的管件
- 对扩展开放,对修改关闭
- 里氏替换原则(Liscov Substitution Principle)
- 所有使用父类的地方,必须能够透明的使用子类对象
- 依赖倒置原则(Dependency Inversion Principle)
- 依赖抽象,而不是依赖具体
- 面向对象编程
- 接口隔离原则(interface Segregation Principle)
- 每一个接口应该承担独立的角色,不干不该自己干的事
- Flyable(能飞) Runnable(能跑) 不该和合二为一
- 避免子类实现不需要实现的方法
- 需要对客服提供接口的时候,只需要暴露最小的接口(单一职责)
- 迪米特原则(Law of Demeter)
- 尽量不要和陌生人说话
- 在迪米特原则中,对于一个对象,非陌生人包括一下几类:
- 当前对象本身(this)
- 以参数形式传递到当前方法中的对象
- 当前对象的成员对象
- 如果当前对象的成员对象是一个结合,那么集合中的元素也是朋友
- 当前对象所创建的对象
- 和其它的类的耦合度变低(尽量少用其它类)
总结
- 开闭原则(OCP):总纲,对扩展开放,对修改关闭
- 单一职责原则(SRP):类的单一职责
- 里氏替换原则(LSP):子类可以透明替换父类
- 依赖倒置原则(DIP):面向接口编程
- 接口隔离原则(ISP):接口职责要单一
- 迪米特原则(LOD):降低耦合