参考:
(一)OO基础:
抽象
封装
继承
多态
(二)OO原则
面向对象原则让我的程序模块达到“高内聚低耦合”.高内聚是指某个特定模块(程序,类型)都应完成一系列相关功能,高内聚意味可维护性,可重新性,因为模块对外部的依赖少(功能的完备性)。耦合是描述模块之间的依赖程度,低耦合则意味着修改另一个类不会影响其他类.
实现高内聚低耦合:行之有效的方式是分了关注点(SOC),将系统拆分成功能不同没有重叠功能集。每个功能只关注一个方面(Aspect)保证模块之间功能没有或者尽量少的重复。模块化内部实现细节隐藏,只暴露必须的接口,使得模块之间依赖于抽象,达到稳定。
1、单一职责原则
全称:“Single-Responsibility Principle”
说明:就一个类而言,应该只专注于做一件事和仅有一个引起它变化的原因。
SRP优点:消除耦合,减小因需求变化引起代码僵化。
2、开闭原则
全称:“Open-Closed Principle”
说明:对扩展开放,对修改关闭。
优点:降低了程序各部分之间的耦合性,其适应性、灵活性、稳定性都比较好。
3、 里氏代换原则
全称:“Liskov Substitution Principle”
说明:子类型必须能够替换它们的基类型。
优点:可以很容易的实现同一父类下各个子类的互换,而客户端可以毫不察觉。
4、依赖倒转原则
全称:“Dependence Inversion Principle”
说明:要依赖于抽象,不要依赖于具体。要针对接口编程,不针对实现编程。
优点:依赖倒置原则使细节和策略都依赖于抽象,抽象的稳定性决定了系统的稳定性。
5、接口隔离原则
全称:“Interface Segregation Principle”
说明:使用多个专一功能的接口比使用一个的总接口总要好。
优点:会使一个软件系统功能扩展时,修改的压力不会传到别的对象那里。
6、迪米特原则(最少知道原则)
全称:“Law of Demeter”
说明:对象与对象之间应该使用尽可能少的方法来关联,避免千丝万缕的关系。
-------------------------------------分割线-------------------------------------------
7、 合成复用原则
全称:“Favor Composition Over Inheritance”
说明:尽量使用合成/聚合,尽量不要使用类继承 。
优点:可以很容易的实现同一父类下各个子类的互换,而客户端可以毫不察觉。
8 、封装变化
全称:“Encapsulate What Changes”
把您认为或怀疑将来要被修改的代码封装起来,这种面向对象设计模式的优点是:易于测试和维护恰当封装的代码。
(三)设计模式
参考1:
参考2:
GOF四人组的23种设计模式总体来说分为三大类:
创建型模式,主要用于创建对象同时隐藏创建逻辑的方式。共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。
结构型模式,用于处理类或对象的组合。共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。
行为型模式,用于描述类或对象之间怎样交互和怎么分配职责。共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。
序号 | 模式 & 描述 | 包括 |
---|---|---|
1 | 创建型模式这些设计模式提供了一种在创建对象的同时隐藏创建逻辑的方式,而不是使用新的运算符直接实例化对象。这使得程序在判断针对某个给定实例需要创建哪些对象时更加灵活。 |
|
2 | 结构型模式这些设计模式关注类和对象的组合。继承的概念被用来组合接口和定义组合对象获得新功能的方式。 |
|
3 | 行为型模式这些设计模式特别关注对象之间的通信。 |
|