1. 单一职责原则 : 就一个类而言,应该仅有一个引起它变化的原因。—— 直白就就是一个类职责要单一(功能原子性),这样类的职责就是低耦合的,这个类的变化不会影响其他职责的能力。软件设计要做的就是发现职责,并把职责归类,分离。
2. 模板方法模式: 基于职责归类、分离,对功能求同存异,把相同的功能点抽离出来放到父类,而不同点个性化的在子类中实现,到达子类复用父类代码的效果。
3. 开放封闭原则:简单讲就是对修改封闭,对扩展开放。 从实现中把可能发生变化的抽象出来(大部分以接口的形式),新的需求来了也只需要增加一些类就可以实现,而不需要修改现有代码。继承与多态算是C++核心所在。
好处:容易维护,可以扩展和复用,灵活性好。
4.依赖倒置原则: 从开放封闭原则发散一下就可以,模块和模块之间的交互通过(依赖)抽象出来的接口进行(细节依赖抽象、实现依赖抽象)。那么模块的具体实现就是可变的、可维护的,新的模块只要都继承并实现相同的接口就可以和其他模块交互。——面向对象编程实时都要考虑面向抽象编程,而不是面向细节编程。
5.里氏代换原则: 子类能替换掉父类(感觉像是废话),关键就是要考虑如果子类继承了这个父类,子类是否应该有父类的所有功能、属性。
6. 装饰设计模式: 通过创建新类,并以聚合的方式包装原有类, 使得原有类只保留最核心部分逻辑, 而装饰部分逻辑移动到其他类中,还可以通过多层装饰的顺序变化或选择,达到不同的装饰效果。
7.代理模式:也是用于聚合的特性,把直接动作变成由代理来调用的间接动作。
待续