一、模式
模式描述的是重复发生问题的解决方案。设计模式是面向对象设计领域的葵花宝典。(无招八式)
设计模式组成的核心有:
-
名称
名称是设计模式的代号,用来标识设计模式,同时也隐含了模式的问题、设计方案、效果等信息。 -
问题
问题即时模式的应用场景,问题是病,模式就是对症下的药。理解问题可以更好的实践模式。 -
解决方案
解决方案描述了模式是如何解决问题的,针对的是问题的抽象分析和解决方法,而不是具体实现。按照解决方式组合出来的效果也需要权衡,做什么都是有代价的
设计模式一书将模式分为创建型模式、结构型模式、行为型模式。
设计模式有两个特点,可复用,作用域是面向对象的设计。
二、设计模式之道
设计模式之道在与找到变化,封装变化。
找到变化回答了where,即在哪里使用设计模式。
封装变化回答了why,即为什么使用设计模式以及使用哪个设计模式。
三、设计原则
设计原则和设计模式是互补的,体现在,设计原则用来指导类的定义的设计,而设计模式主要用来指导类的行为的设计。
solid的原则
设计原则英文名称 | 名称 | 说明 |
SRP | 单一职责原则 | 一个类只承担一种责任,否则就进行拆分。一生爱一人嘛 |
OCP | 开放封闭原则 | 对扩展开放,对修改关闭。可以认识其他异性,但是不能换恋人 |
LSP | 里氏替换原则(老色批原则) | 继承关系时,父类对象可以由任意子类对象进行替换,结果不会发生变化(##) |
DIP | 依赖倒置原则 | 高层模块不应该依赖低层模块,都依赖于抽象。 抽象和细节犹如白蛇和白素贞的区别 |
ISP | 接口隔离原则 | 接口设计尽量的小,方法尽量集中。不要大杂烩,尽量白开水。主要原因是实现接口类的负重会降低。(##) |