1.单一责任原则 定义:对一个类而言,应该只有一个引起它改变的原因 通俗地讲就是不要让一个类承担太多的职责,比如 一个Activity不要放bean类,不要把适配器也放进来,Activity就是一个展示的页面和功能。 2.开放封闭原则 定义:类,模块,函数等应该是可以扩展的,但是不可修改 就是我们再设计时候应该尽量通过扩展的方式来实现,而不是改变代码逻辑,比如静态工厂和动态工厂,动态工厂就是开放封闭原则 3.里氏替换原则 定义:所有应用父类的地方必须能透明地使用子类对象 就是软件中一个基类对象替换成其子类对象是成立的,基类可以使用子类方法。就是java中的把父类设计成抽象类和接口,让子类继承父类或者实现父类接口,并实现父类中方法的声明,运行时候子类实例替换父类实例,我们可以很方便扩展系统的功能。 4.依赖倒置原则 定义:高层模块不应该依赖底层模块,两个模块应该依赖于抽象,抽象不应该依赖细节,细节应该依赖对象 依赖倒置原则在java中的编写就是模块间依赖通过抽象发生,实现类之间不发生直接依赖,其依赖关系是通过接口或者抽象类的产生的如果类与类之间直接依赖细节,那么就会直接耦合,限制了可扩展性。 5.迪米特原则 定义 ,一个软件实体应该尽量少于其他实体发生相互作用 当一个某块发生修改是,会尽量少地影响其他模块 接口隔离原则 定义:一个类对另外一个类的依赖应该建立在最小的接口上 建立单一接口,不要 建立庞大臃肿的接口,尽量细化接口,接口方法尽量少,也就是我们要为各个类建立专用接口,不要试图建立一个庞大的接口供所有依赖它的类调用,要注意以下几点 接口尽量小,但是要有限制,如果太小会导致接口数量过多,复杂化设计 为依赖接口的类定制服务,只暴露它需要的方法 提高高内聚,减少对外交互