设计模式的六大原则
面对长篇大论的六大原则你是怎么理解的呢?
- 单一职责原则 single responsibility principle
- 里是替换原则 Liskov substitution priciple
- 依赖倒置原则 dependice inversion priciple
- 开闭原则 open-close priciple
- 接口隔离原则 interface segregation priciple
- 迪米特原则 low of demeter
单一职责
这个很好理解吧,一个模块,一个类,负责单一的功能。完在单一的事情。
里氏替换
大概解释会是这样子:每一个有基类的地方,都可以被子类所替换,并且功能不改变。
本质是什么呢?
也就是我们在设计子类的时候,要遵循里氏替换原则,也就是尽量不要覆写父类的方法。如果你覆写了,功能如果变了,那么子类替换掉基类,那功能不就变了嘛。就不符合里氏替换原则了。
依赖倒置
细节依赖接口,接口不依赖实现。细节依赖抽象,抽象不依赖实现。
本质就是面向接口,面向抽象编程。
开闭原则
扩展开放,修改封闭。本质就是使用接口来完成架构的设计,通过接口的实现来完成功能的扩展。
接口隔离
接口隔离就是对接口进行拆分,处理好依赖关系。本质就是解决接口过于庞大,只要谁实现该接口,就要实现所有的方法,即使用不上。应该实现的是最小公共接口。
迪米特原则
也叫最少了解原则。在实际发中,尽量要减少对不重要的类/模块的依赖。
比如说你方法里临时使用的一个类,那就可以通过其他方式把它去掉了,比如可以放到更相关的模块里去。