设计模式介绍
1.1 设计模式
- 设计模式是软件设计中常见问题的典型解决方案,可用于解决代码中反复出现的设计问题。
- 设计模式不是算法,算法提供明确的步骤,模式更像是一个蓝图(能看到最终的结果)。
1.2 设计模式原则
设计模式背后的面向对象设计原则:
- 封装变化。
- 多用组合,少用继承。
- 针对接口编程,不针对实现编程。
- 为交互对象之间的松耦合而努力。
- 对扩展开放,对修改关闭。
- ……
1.3 设计模式分类(意图)
- 创建型模式:创建对象的机制,从所需要实例化的对象中解耦。
- 结构型模式:将对象或类组装到更大的结构中。
- 行为型模式:负责对象间的交互和分配职责。
分类的目的是为了更抽象地了解设计模式,以及熟悉它们之间的关系。
1.4 UML类图
UML:统一建模语言(Unified Modeling Language)。
- 依赖(偶然的,陌生的):对类B进行修改会影响到类A。
- 关联(必然的,熟悉的):对象A知道对象B。类A依赖于类B。
- 聚合(has a):对象A知道对象B且由B构成。类A依赖于类B。
- 组合(has a、part of):对象A知道对象B、由B构成,且管理着B的生命周期。类A依赖于类B。
- 实现(is a接口):类A定义的方法由接口B声明。对象A可被视为对象 B。类A依赖于类B。
- 继承(is a父类):类A继承类B的接口和实现, 但是可以对其进行扩展。对象A可被视为对象B。类A依赖于类B。
1.5 举个栗子
左边为面向实现开发,右边为面向接口开发。右边的更灵活,也更复杂。