设计模式六大原则
2018-02-08 本文已影响0人
有没有口罩给我一个
概述
设计模式六大原则,分别是:单一职责原则、开放封闭原则、里氏替代原则、依赖倒置原则、迪米特原则和接口隔离原则。
- 单一职责原则
定义:就一个类而言,应该仅有一个引起它变化的原因。
通俗来讲,就是我们不能让一个类承担过多的职责,一个类承担过多的职责,就等于把这些职责耦合在一起,一个职责的变化可能会削弱或抑制该类完成其他职责的能力,这种耦合会导致脆弱的设计,变化发生时,设计会遭到破坏。
例如:
Activity中写Bean、网络数据处理和Adapter,如果我们修改Bean文件、网络数据处理逻辑和Adapter都需要在Activity上修改,违背了一个类“应该仅有一个引起它变化的原因”。 - 开放封闭原则
定义:类、模块、函数等都应该是可拓展的,但是不可修改。
开放封闭有两层含义:
1、拓展是开放的;
2、修改是封闭的;
对于开发来说,需求肯定是会变化的,但是我们不同接受有新需求,就把已经设计好的类该了,这显然不好,不利于项目的稳定,所以我们设计程序时尽可能的的通过拓展的方式来实现,而不是修改原有的到代码来实现。 - 里氏替换原则
定义:所有引用基类的地方必须能透明地使用其子类的对象。即在软件中将一个基类换成其子类对象,程序也不会产生任何错误和异常,但是反过来则不成立;基类可以是抽象或接口,所以基类可以产生很多子类,所以可以使用基类的地方,不一定能使用子类;
需要注意一点就是:子类所有的方法必须在基类中声明,或子类必须实现基类中所有的方法,和在Java中多态性特性是一样的; - 依赖倒置原则
定义:高层模块不应该依赖于底层模块,两者都应该依赖于抽象。抽象不应该依赖于细节,细节应该依赖于抽象。
*迪米特原则
定义:一个软件实体应当尽可能少地与其他实体发生相互作用,即如果已改模块发生了修改,就会尽可能的影响其他模块。
*接口隔离原则
定义:一个类对另一个类的依赖应该建立在最小接口上;
需要注意几点:
1、接口尽量小,但是要有限度;对接口进行细化可以提高程序设计的灵活性;但是如果过小,会造成接口数量过多,使设计复杂化。
2、为依赖接口的服务定制服务,至暴露给调用者类锁需要的方法;
3、提高内聚,减少对外交互;