# 23种设计模式
三种最基本的设计模式:
- 创建模式,提供实例化的方法,为适合的状况提供相应的对象创建方法。
- 结构化模式,通常用来处理实体之间的关系,使得这些实体能够更好地协同工作。
- 行为模式,用于在不同的实体建进行通信,为实体之间的通信提供更容易,更灵活的通信方法。
创建型
1. Factory Method(工厂方法)
2. Abstract Factory(抽象工厂)
3. Builder(建造者)--
4. Prototype(原型)--
5. Singleton(单例)--
结构型
6. Adapter Class/Object(适配器)--
7. Bridge(桥接)--
8. Composite(组合)--
9. Decorator(装饰)--
10. Facade(外观)--
11. Flyweight(享元)--
12. Proxy(代理)--
行为型
13. Interpreter(解释器)--
14. Template Method(模板方法)--
15. Chain of Responsibility(责任链)--
16. Command(命令)--
17. Iterator(迭代器)--
18. Mediator(中介者)--
19. Memento(备忘录)--
20. Observer(观察者)--
21. State(状态)--
22. Strategy(策略)--
23. Visitor(访问者)--
#七大设计原则
1、单一职责原则【SINGLE RESPONSIBILITY PRINCIPLE】:一个类负责一项职责.
2、里氏替换原则【LISKOV SUBSTITUTION PRINCIPLE】:继承与派生的规则.(子类可替换父类)
3、依赖倒转原则【DEPENDENCE INVERSION PRINCIPLE】:高层模块不应该依赖低层模块,二者都应该依赖其抽象;抽象不应该依赖细节;细节应该依赖抽象。即针对接口编程,不要针对实现编程。
4、接口隔离原则【INTERFACE SEGREGATION PRINCIPLE】:建立单一接口,不要建立庞大臃肿的接口,尽量细化接口,接口中的方法尽量少。
5、迪米特法则【LOW OF DEMETER】:高内聚 低耦合 – high cohesion low coupling
6、开闭原则【OPEN CLOSE PRINCIPLE】:一个软件实体如类、模块和函数应该对扩展开放,对修改关闭。
7、组合/聚合复用原则【Composition/Aggregation Reuse Principle(CARP) 】:尽量使用组合和聚合少使用继承的关系来达到复用的原则。
摘自https://blog.csdn.net/zheng_lan_fang/article/details/76550093