面向对象的33种设计模式总结

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/haoranhaoshi/article/details/85262496

简介:
设计模式(Design pattern):面向对象的开发人员的最佳实践,适合解耦,大型项目,团队开发。
世间众多设计模式目的是相同的,即隔离系统变化点。

类型:
设计模式分为创建型(关注对象创建)、结构型(关注对象组合)、行为型(关注对象通信),包括33种设计模式。设计模式分为创建型(关注对象创建)、结构型(关注对象组合)、行为型(关注对象通信),包括33种设计模式。

原则:
1、开闭原则(Open Close Principle):对扩展开放,对修改关闭。
2、里氏代换原则(Liskov Substitution Principle):任何基类可以出现的地方,子类一定可以出现。
3、依赖倒转原则(Dependence Inversion Principle):针对接口编程,依赖于抽象而不依赖于具体。
4、接口隔离原则(Interface Segregation Principle):使用多个隔离的接口,比使用单个接口要好。
5、迪米特法则(Demeter Principle),又称最少知道原则:个实体应当尽量少地与其他实体之间发生相互作用,使得系统功能模块相对独立。
6、合成复用原则(Composite Reuse Principle):尽量使用合成/聚合的方式,而不是使用继承。

核心思想:
(建议首先了解核心思想,根据工作需要进行实践。脱离实践通读深究所有设计模式,个人认为收效不甚明显。)
(各模式优缺点,适用场景,代码举例查看,强烈推荐:http://www.runoob.com/design-pattern/design-pattern-tutorial.html)
1、 工厂模式(Factory Pattern):工厂生产多款产品。
2、 抽象工厂模式(Abstract Factory Pattern):工厂生产多个系列的产品。
3、 单例模式(Singleton Pattern):全局一个实例。私有的构造函数,静态的本类实例化对象。
4、 建造者模式(Builder Pattern)(又称,生成器模式):建造者组装产品。
5、 原型模式(Prototype Pattern):建造原型以备克隆。对象克隆快于对象初始化。
6、 适配器模式(Adapter Pattern):统一处理需要加入的实现。
7、 桥接模式(Bridge Pattern):抽象化角色和具体化角色之间通过接口桥接构建联系。不通过类继承,使抽象化角色和具体化角色更灵活。
8、 过滤器模式(Filter Pattern)(又称,标准模式)(Criteria Pattern):过滤类对象属性,单个属性或者属性的交集、并集。
9、 组合模式(Composite Pattern)(又称,部分整体模式):确定对象间的隶属关系。
10、装饰器模式(Decorator Pattern):同一种操作方式加在不同的对象上。
11、外观模式(Facade Pattern):外观类将复杂操作封装在方法中。
12、享元模式(Flyweight Pattern):共享对象,减少对象数量。减轻内存溢出风险。
13、代理模式(Proxy Pattern):在已有基础上增加新的操作。
14、责任链模式(Chain of Responsibility Pattern):触发下一个节点对象的操作。
15、命令模式(Command Pattern):加入多个命令,统一执行。
16、解释器(Interpreter Pattern):为语法创建逻辑。
17、迭代器(Iterator Pattern):顺序访问集合中的元素。
18、中介者模式(Mediator Pattern):提供中间平台统一分发。
19、备忘录模式(Memento Pattern):记录历史数据。
20、观察者模式(Observer Pattern):在观察项改变时,观察者通知所有的联系实体。
21、状态模式(State Pattern):给实体设置不同的状态。
22、空对象模式(Null Object Pattern):用空对象代替空。
23、策略模式(Strategy Pattern):给实体设置不同的策略。
24、模板模式(Template Pattern):操作在不同子类中实现。
25、访问者模式(Visitor Pattern):访问者不同,操作不同。
26、MVC模式(Model-View-Controller Pattern):根据模型数据操作视图。
27、业务代表模式(Business Delegate Pattern):业务代表设置不同服务类型,客户端执行不同操作。
28、组合实体模式(Composite Entity Pattern):组合实体的数据分发到依赖实体中。
29、数据访问对象模式(Data Access Object Pattern):从服务中分离数据访问。
30、前端控制器模式(Front Controller Pattern):根据请求不同给出不同的视图。
31、拦截过滤器模式(Intercepting Filter Pattern):对应用程序的请求或响应做一些预处理/后处理。
32、服务定位器模式(Service Locator Pattern):查找某类型服务后,缓存服务对象。
33、传输对象模式(Transfer Object Pattern):传输对象为业务对象提供数据访问。

猜你喜欢

转载自blog.csdn.net/haoranhaoshi/article/details/85262496