面向对象程序设计是有六大原则的,但是这些原则也不是一定要遵循,只是说遵循这些原则能大大提高程序的解耦和扩展性,当然困难的是吧这些原则细分到什么程度,这个就要靠个人经验了。
1.单一职责原则
Single Responsibility Principle (SRP)
定义:就一个类而言,应该仅有一个引起它变化的原因。或者说一个类中应该是一组相关性很高的函数、数据的封装。
比如图片加载类里面把缓存,网络获取图片等功能放到不同的类中,一个类负责一件事情,避免一个类从事过多过杂的工作。
但是在项目业务中具体到如何划分一个类、方法,就要凭借个人经验和具体的业务来定了。
2.开闭原则
Open Close Principle
定义:软件中的对象(类、模块、函数等)应该是对扩展开发的,但是对修改是封闭的。
理想状态是在开发完毕后,除非因为错误问题,不会去修改一个类。
如果要增加新功能或者改变特性,应该新建新的类来实现,新的类可以通过继承来复用以前的代码。
比如采用策略模式,或者使用依赖注入来改变对象的行为。
3.里氏替换原则
所有使用基类的地方,都能透明的使用其子类对象。
4.依赖倒置原则
高层模块不应该依赖低层模块,两者都应该依赖其抽象
抽象不应该依赖细节
细节应该依赖抽象
5.接口隔离原则
客户端不应该依赖他不需要的接口。
类之间的依赖关系应该建立在最小的接口上。
6.迪米特原则
LOD,也称为 最小知识原则
一个对象应该对其他对象有最少的了解。