参考:https://www.jianshu.com/p/bf92927c9d22
(一)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:http://www.cnblogs.com/xing901022/category/597988.html
参考2:http://www.runoob.com/design-pattern/design-pattern-intro.html
GOF四人组的23种设计模式总体来说分为三大类:
创建型模式,主要用于创建对象同时隐藏创建逻辑的方式。共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。
结构型模式,用于处理类或对象的组合。共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。
行为型模式,用于描述类或对象之间怎样交互和怎么分配职责。共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。
序号 | 模式 & 描述 | 包括 |
---|---|---|
1 | 创建型模式 这些设计模式提供了一种在创建对象的同时隐藏创建逻辑的方式,而不是使用新的运算符直接实例化对象。这使得程序在判断针对某个给定实例需要创建哪些对象时更加灵活。 |
|
2 | 结构型模式 这些设计模式关注类和对象的组合。继承的概念被用来组合接口和定义组合对象获得新功能的方式。 |
|
3 | 行为型模式 这些设计模式特别关注对象之间的通信。 |
|