设计原则
降低耦合度,增加代码的复用性、可扩展性、可维护性
- 单一职责原则:设计目的单一的类
- 开放封闭原则:对扩展开放,对修改封闭
- 里氏替换原则:子类可以替换父类[父类对象可以出现的地方,子类对象也一定可以出现。子类可以赋值给父类;如果父类中装的是子类对象,那么可以将这个父类强转成子类对象]
- 依赖倒置原则:要依赖于抽象,而不是具体实现;针对接口编程,不要针对实现编程
- 接口隔离原则:使用多个专门的接口比使用单一的总接口要好
- 迪米特原则(最少知识法则):一个对象应当对其他对象有尽可能少的了解
- 组合重用原则:要尽量使用组合,而不是继承关系(继承关系是紧耦合,即父类改变子类也要变)达到重用目的
设计模式的概念
- 架构模式:软件设计中的高层决策,例如C/S结构就属于架构模式,架构模式反映了开发软件系统过程中所作的基本设计决策
- 设计模式:主要关注软件系统的设计,与具体的实现语言无关
- 惯用法:是最低层的模式,关注软件系统的设计与实现,实现时通过某种特定的程序设计语言来描述构件与构件之间的关系。每种编程语言都有它自己特定的模式,即语言的惯用法。例如引用-计数就是c++语言中的一种惯用法。
设计模式的目的
重用成功的软件开发经验
设计模式的分类
Creational 创建型 :和对象创建有关
Structural 结构型 :处理类或对象的组合
Behavioral 行为型 :描述类或对象如何交互以及如何分配职责
分类 | 设计模式 | 说明 | 适用于 | 速记关键字 |
创 建 型 |
工厂模式 (Factory Method) |
定义一个用于创建对象的接口,让子类决定将哪-个类实例化,使一个类的实例化延迟到其子类 | 当一个类不知道它所必须创建的对象的类的时候; 当一个类希望由它的子类来指定它所创建的对象的时候; 当类将创建对象的职责委托给多个帮助子类中的某一个,并且希望将哪一个帮助子 |