Skip to content

设计模式

简介

设计模式(Design Pattern)是软件开发中常见问题的可重用解决方案。它不是具体的代码,而是一种思想、模板或最佳实践,描述了如何在特定场景下解决设计问题。

优点

  • 设计模式已经成为了一种解决重复出现的问题的工业标准,所以使用设计模式更省时省力。
  • 设计模式可以提升代码重用性,编写鲁棒性更好、维护性更好的代码。
  • 因为设计模式已经定义成了标准,所以更容易理解和调试。可以加速开发,新成员也更容易理解。

分类

可分为创建型(Creational)结构型(Structural)行为型(Behavioral) 三种。

  • 创建型模式:主要用于描述如何创建对象
  • 结构型模式:主要用于描述如何实现类或对象的组合
  • 行为型模式:主要用于描述类或对象怎样交互以及怎样分配职责

设计模式的7大原则

设计模式有7大原则,目的只有一个:降低对象之间的耦合,增加程序的可复用性、可扩展性和可维护性

设计原则归纳目的
开闭原则对扩展开放,对修改关闭降低维护带来的新风险
依赖倒置原则高层不应该依赖低层,要面向接口编程更利于代码结构的升级扩展
单一职责原则一个类只干一件事,实现类要单一便于理解,提高代码的可读性
接口隔离原则一个接口只干一件事,接口要精简单一功能解耦,高聚合、低耦合
迪米特法则不该知道的不要知道,一个类应该保持对其它对象最少的了解,降低耦合度只和朋友交流,不和陌生人说话,减少代码臃肿
里氏替换原则不要破坏继承体系,子类重写方法功能发生改变,不应该影响父类方法的含义防止继承泛滥
合成复用原则尽量使用组合或者聚合关系实现代码复用,少使用继承降低代码耦合

GoF 设计模式

GoFGang of Four(四人帮) 的缩写,指 1994 年出版的经典书籍《设计模式:可复用面向对象软件的基础》(Design Patterns: Elements of Reusable Object-Oriented Software)的四位作者。

创造型模式

关注对象的创建机制,增加系统的灵活性和复用性。

模式说明
单例模式保证一个类只有一个实例
工厂方法模式定义创建对象的接口,让子类决定实例化哪个类
抽象工厂模式创建相关或依赖对象的家族
建造者模式分步骤构建复杂对象
原型模式通过复制现有对象创建新对象

结构型模式

关注类和对象的组合,形成更大的结构。

模式说明
适配器模式让不兼容的接口协同工作
装饰器模式动态给对象添加职责
代理模式为其他对象提供代理以控制访问
外观模式为子系统提供统一接口
组合模式将对象组合成树形结构
桥接模式将抽象与实现分离
享元模式共享细粒度对象以节省内存

行为模式

关注对象间的通信和职责分配。

模式说明
观察者模式对象间一对多依赖,自动通知
策略模式定义一系列算法,可互换使用
责任链模式请求沿处理链传递
命令模式将请求封装为对象
模板方法模式定义算法骨架,子类实现细节
状态模式对象内部状态改变时行为改变
访问者模式在不改变元素类的前提下定义新操作
中介者模式用中介对象封装对象交互
备忘录模式保存和恢复对象状态
解释器模式定义语言文法并解释句子
迭代器模式顺序访问集合元素

如有转载或 CV 请标注本站原文地址