本文出自《Android源码设计模式解析与实战》中第一章的个人总结,知识嘛共享的,给大家推荐一下这本书。
偶然发现,在CSND上有这本书第一章的原文面向对象六大原则作者的博客哦,受教了。
这是文中例子的UML图,加入的我的理解。
六大基本原则可分为:SOLID和迪米特原则。
1.单一自责原则S——优化代码的第一步
Single Responsibility Principle,简称SRP
定义:就一个类而言,应该仅有一个引起它变化的原因
2.开闭原则O——让程序更稳定、更灵活
Open Close Principle,简称OCP
定义:软件中的对象(类、模块、函数等)应该对于扩展是开放的,但是,对于修改是封闭的
3.里氏替换原则L——构建扩展性更好的系统
Liskov Substitution Principle,简称LSP
定义:所有引用基类的地方必须能透明地使用其子类的对象
4.接口隔离原则I——系统有更高的灵活性
InterfaceSegregation Principles,简称ISP
定义:类间的依赖关系应该建立在最小的接口上
5.依赖倒置原则D——让项目拥有变化的能力
Dependence Inversion Principle,简称DIP
定义:
(1)高层模块不应该依赖低层模块,两者都应该依赖其抽象;
(2)抽象不应该依赖细节;
(3)细节应该依赖抽象。
6.迪米特原则——更好的可扩展性
Law of Demeter,简称LOD 定义:一个对象应该对其他对象有最少的了解