《Android源码设计模式解析与实践》阅读笔记(一)

来源:互联网 发布:淘宝网店项目策划书 编辑:程序博客网 时间:2024/05/27 19:28

面向对象的六大原则


1.1 单一职责原则(Single Responsibility Principle,缩写SRP)


一个类中,应该是一组相关性很高的函数、数据的封装。

1.2 开闭原则(Open Close Principle,缩写OCP)


开放——关闭原则:软件中的对象(类、模块、函数等)应该对于扩展是开放的,但是对于修改是封闭的。

1.3 里氏替换原则(Liskov Substitution Principle,缩写LSP)


第一种定义:
如果每一个类型为S的对象O1,都有类型为T的对象O2,使得以T定义的所有程序P在所有的对象O1都代换成O2时,程序P的行为没有发生变化,
那么类型S是类型T的子类型。
第二种定义:
多有引用基类的敌方必须能透明地使用其子类的对象。只要弗雷能出现的地方子类就可以出现,而且替换为子类也不会产生任何错误或异常,
使用者可能根本不需要知道是父类还是子类。
里氏替换原则就是依赖于继承、多态这两大面向对象语言特性(抽象、继承、封装、多态)。

开闭原则和里氏替换原则,都同时强调了一个OOP的重要特性——抽象。

1.4 依赖倒置原则(Dependence Inversion Principle,缩写DIP)

依赖倒置关键点:
(1)高层模块不应该依赖低层模块,两者都应该依赖其抽象;(高层模块就是调用端,低层模块就是具体实现类。
(2)抽象不应该依赖细节;(抽象指接口或抽象类,两者都是不能直接被实例化的
(3)细节应该依赖抽象。(细节就是实现类,实现接口或继承抽象类而产生的类就是细节,其特点就是,可以直接被实例化。)

模块间的依赖通过抽象发生,实现类之间不发生直接的依赖关系,其依赖关系是通过接口或抽象类产生的。

1.5 接口隔离原则(Interface Segregation Principle,缩写ISP)


第一种定义:
客户端不应该依赖他不需要的接口。
第二种定义:
类间的依赖关系应该建立在最小的接口上 。
目的:
系统解开耦合,从而容易重构、更改和重新部署。

1.6 迪米特原则(Law Of Demeter,缩写LOD,也称为最少知识原则,Least Knowledge Principle)


一个对象应该对其他对象有最少的了解。

阅读全文
0 0
原创粉丝点击