设计模式六大原则
设计模式六大原则:单一职责原则,开放封闭原则,里式替换原则,依赖倒置原则,迪米特原则和接口隔离原则。
1.单一职责原则:就一个类而言,应该仅有一个引起它变化的原因。有时会把网络请求,adapter等内容全部写到activity中,要修改时会导致引起activity变化的原因太多,这样就违背了单一职责原则。
2.开放封闭原则:对于类,模块,函数是可以扩展的,不可以修改的。开放封闭原则有两个含义,对于扩展是开放的,对于修改是关闭的,有新需求尽量通过扩展的方式实现变化,而不是通过修改原有的代码来实现,假设要实现一个列表,一开始只有查询功能,后来又要添加增加、删除功能,大多数人是写一个方法,传入不同的值,来控制方法实现不同的功能,但是如果要再新增功能,还得修改方法,使用开放封闭原则,就是增加一个抽象的功能类,让所有的功能类都实现这个抽象类,如果要在新增功能,我们就会发现无需修改原有的类,只需新增一个功能类的子类就可以了。
3.里氏替换原则:所有使用基类的地方必须能够透明的使用其子类对象。里氏替换原则告诉我们,在软件中将一个基类对象换成子类对象并不会产生任何异常,反之则不成立,里氏替换原则是实现开放封闭原则的重要方式之一。程序中尽量使用父类对象进行定义,在运行时在确定子类类型,用子类对象替换父类对象。在使用里氏替换原则时候应该注意一下几点:(1)子类的所有方法必须在父类中声明,或者子类必须实现父类的所有方法(2)尽量把父类设计成抽象类或者接口。
4.依赖倒置原则:高层模块不应该依赖于底层模块,两者都应该依赖于抽象,抽象不应该依赖于细节,细节应该依赖于抽象。抽象指抽象类或者接口,细节是实现类,实现接口或者继承抽象类而产生的就是细节,模块之间的依赖通过抽象发生,实现类之间不发生直接的依赖关系,其依赖关系是通过接口或者抽象类产生的,如果类与类之间直接依赖,那就会直接耦合,限制扩展性。
5.迪米特原则:一个软件实体应该尽可能少的与其他实体发生相互作用。也叫做最少知识原则,模块与模块之间尽量减少直接的相互作用,降低耦合。
6.接口隔离原则:一个类对另一个类的依赖应该建立在最小的接口上。建立单一的接口,不要建立庞大臃肿的接口,尽量细节化接口,接口中的方法应该尽量少,也就是说我们要为各个类建立专用的接口,不要试图建立一个很庞大的接口供所有依赖他的类调用。接口尽量小但是要有限度。