扎实基础_设计模式之六大原则
作者:互联网
一:单一职责
定义:一个类只负责一项职责,不要存在多余一个导致类变更的因素
反面例子:A类游泳池,负责游泳功能和跳水功能,当某一天,游泳功能改为跑步, 那么A类势必要进行改造,从而影响跳水功能
解决方案:遵循单一职责,游泳就为游泳类,跳水就为跳水类
二:开闭原则
定义:类,函数,模块,开放拓展功能,关闭,修改功能 因为修改的时候,你不知道有哪几个地方调用它
反面例子:软件,一个类,函数,基本都是二次开发,迭代,很少是一手代码,对应一手程序员,所以修改会引起很大危险
解决方案:软件需要变化的时候,尽量拓展来满足需求,而不是直接去修改它,拓展之后的业务逻辑都是自己的,改起来so easily
三:里氏替换法则
定义:子类可以扩展父类的功能,但不能改变父类原有的功能
反面例子:继承带来好处,但是也带来了弊端,当一个类被其他类继承到时候,修改这个类,必须要考虑到所有的子类功能是否会产生问题
解决方案:
- 子类可以实现父类的抽象方法,但不能覆盖父类的非抽象方法。
- 子类中可以增加自己特有的方法。
- 当子类的方法重载父类的方法时,方法的前置条件(即方法的形参)要比父类方法的输入参数更宽松。
- 当子类的方法实现父类的抽象方法时,方法的后置条件(即方法的返回值)要比父类更严格。
四:依赖倒置
定义; 核心思想就是面向接口编程,高层模块不应该依赖低层模块,二者都应该依赖其抽象;抽象不应该依赖细节;细节应该依赖抽象。
反面例子:员工依赖公司, 如果员工想离开,变成老板, 则必须要和公司接触依赖,
解决方案:都依赖一个接口平台, 只要符合接口平台原则,想变老板就老板
五:接口隔离原则
定义:客户端不应该依赖它不需要的接口;一个类对另一个类的依赖应该建立在最小的接口上。
反面例子:类A通过接口I依赖类B,类C通过接口I依赖类D,如果接口I对于类A和类B来说不是最小接口,则类B和类D必须去实现他们不需要的方法。
解决方案:将臃肿的接口I拆分为独立的几个接口,类A和类C分别与他们需要的接口建立依赖关系。也就是采用接口隔离原则。
六:迪米特法则
定义:一个对象应该对其他对象保持最少的了解。
反面例子:类与类之间的关系越密切,耦合度越大,当一个类发生改变时,对另一个类的影响也越大。
解决方案:尽量降低类与类之间的耦合。
标签:六大,依赖,反面,子类,父类,接口,扎实,设计模式,方法 来源: https://www.cnblogs.com/LZXX/p/12876688.html