谈到设计模式,首先要了解的是设计的六大原则。各个设计模式,都是基于这些原则而衍生出来的,熟练掌握这些原则,是首要基础,下面介绍这六个原则的定义和适用场景。
单一职责原则:一个接口或一个类仅有一个原因引起变化
如对象的属性和行为拆分成两个接口,当行为数量有变化时,只需要改行为接口,字段变化只需要改属性接口。里氏替换原则:所有使用基类的地方,使用子类也不会有问题
随着项目的推进,父类可能衍生出很多子类,该原则能确保新增的子类也能在程序中正常运行,增强了程序的健壮性和稳定性。依赖倒置原则:实现类之间不直接依赖,模块之间靠接口或抽象依赖,实现依赖接口或抽象,接口或抽象不依赖实现
按该原则,在开始约定接口和接口之间的依赖,可有效避免多人并行开发的风险,同时也增加了代码的可读性和可维护性。接口隔离原则:接口设计尽量精简,让类之间的依赖建立在最小的接口上
若一个对象有十个类似行为,按职责分离原则,该为这十个行为建立一个接口。但不同模块使用到不同的行为时,应按需进一步切分,让模块和对象的行为依赖最小接口。最少知识原则:对象应该对自己耦合的对象有最少的了解
原则的本意是对象之间尽量解耦,以免牵一发而动全身,但副作用是产生大量中转或跳转类,增加代码复杂度和维护难度,所以考虑该原则的时候要把握一个度。开闭原则:对扩展开放,对修改关闭
对老代码的修改,会导致老代码的逻辑变更,测试重做。对一个臃肿大项目的老代码进行修改,会造成海量的影响。所以尽量用扩展代替修改,能最大限度地节约工作量。