面向对象的六大原则
一、单一职责原则
就一个类而言,应该只有一个引起它变化的原因。Android开发中常见的MVP模式、MVVM模式就很好地遵循了单一职责原则。以MVP模式为例,当UI样式发生改变时,往往只需要修改View(也就是Activity、Fragment),而不需要修改Model和Presenter。
二、开闭原则
软件中的对象(类、函数等)对于扩展应该是开放的,对于修改是封闭的。在开发过程中,在已通过测试的代码上进行修改可能引入新的bug,而且代码可读性、可维护性都会一定程度降低。扩展有两种方式:继承已有实现类、实现已有接口。实现已有接口显然是最佳选择,如果没有现成的接口,那么就需要继承已有的实现类(可能需要修改属性、方法的可见性),或者进行重构,抽象出相应的接口。
三、里氏替换原则
所有基类出现的地方都能用子类替换。OOP天然支持
四、依赖倒置原则
应该依赖于抽象(接口、抽象类),不应该依赖于细节(实现类)。如果一个类直接依赖于实现的细节,那么以后每次修改实现的细节,这个类都需要修改。
public class ImageLoader {
private var memoryCache: MemoryCache? = null
public fun setMemoryCache(memoryCache: MemoryCache) {