六大原则:
- 单一模式:把事情分工明细,例如BitmapUtil类和HttpUtil类就不要合在一个类了,虽然合起来的时候用来联网获取图片减少代码量,但是增加了耦合度,不利于代码的封装。
- 开闭原则:对于扩展是开放的,对于修改是关闭的。就是在原有的功能上要进行拓展功能的时候,应该提取出共有功能做成接口;而不同的功能就可以在不同的类当中实现出来,降低了耦合度。
- 里氏替换原则:在运用继承的过程中,父类的方法在被子类的继承过程中,子类需要做出拓展的时候,这个方法就要进行抽象。例如基类BaseActivity中,setContentLayout(R.layout.xx)的方法在针对不同的子Activity有不同的布局,所以该方法要继续拓展,abstract int getLayout()。
- 依赖倒置原则:模块间的依赖应该通过抽象(接口与接口/抽象类与抽象类)产生,而不是通过细节(类与类)产生。例如MVP模式中,Model层和View层之间的交互是通过抽象类来实现的,这样在需求发生变化时,M层与V层的联系还是在抽象类中,我们只需改动接口就可以了。
- 接口隔离原则(ISP):让客户端知道有这个接口用,不用担心其他事情。
- 迪米特原则:调用者只需要知道类里面有什么可以用上的方法,而类的实现和调用类没什么关系。