- 设计模式不是为每个人准备的,而是基于业务来选择设计模式,需要时就能想到它。
要明白一点,技术永远为业务服务,技术只是满足业务需要的一个工具。我们需要掌握每种设计模式的应用场景、特征、优缺点,以及每种设计模式的关联关系,这样就能够很好地满足日常业务的需要。- 设计模式从来都不是单个设计模式独立使用的。在实际应用中,通常多个设计模式混合使用,你中有我,我中有你。
- 设计模式是针对软件设计的,而软件设计是针对需求的,一定不要为了使用设计模式而使用设计模式,否则可能会使设计变得复杂,使软件难以调试和维护。
- 设计模式的目的:
为了提高 代码的重用性、可读性、扩展性、可靠性、稳定性、维护性
等 使程序呈现高内聚、低耦合
的特征
设计模式七大原则
- 单一职责原则(SRP:Single responsibility principle)
一个类只负责一个功能领域的职责
- 接口隔离原则(Interface Segregation Principle)
- 依赖倒转原则(Dependence Inversion Principle)
1.高层模块不应该依赖底层模块,二者都应该依赖其抽象
2.抽象不应该依赖细节,细节应该依赖抽象
3.依赖倒转原则的中心思想是面向接口编程
4.使用接口或抽象类
的目的是定制好规范
,而不涉及任何具体的操作,把展现的细节的任务交给具体实现类去完成
- 里氏替换原则
子类可以扩展父类的功能,但尽量不要重写父类的方法
开闭原则(OCP:Open Closed Principle)【核心】
最基础,最重要的设计原则
当软件需要变化时,尽量通过扩展软件实体
的行为来实现变化,而不是通过修改已有的代码来实现变化
- 迪米特法则(Demeter Principle)又叫 最少知道原则
- 合成复用原则
尽量使用合成或聚合的方式,而不是使用继承
设计模式分为三种类型,共23种
-
创建型模式:
单例模式
、工厂模式
、抽象工厂模式、原型模式、建造者模式 -
结构型模式:适配器模式、桥接模式、
装饰模式
、组合模式、外观模式、享元模式、代理模式
。 -
行为型模式:模版方法模式、命令模式、访问者模式、迭代器模式、
观察者模式
、中介者模式、备忘录模式、解释器模式(Interpreter模式)、状态模式、策略模式、职责链模式(责任链模式)。
注意:不同的书籍上对分类和名称略有差别