设计模式的七大原则
设计模式有说七大原则,也有说六大原则,面向对象编程有五大原则,都在下面者其中原则中包含了,现在我们对这几种原则做简单的说明
设计模式六大原则不包含合成复用原则
面向对象编程的五大原则包括(单一职责,开闭原则,里氏替换原则,依赖倒转原则,接口隔离原则)
1. 单一职责原则
一个类只负责一项任务,如果一个类即负责任务A也负责任务B,当任务A变更的时候,可能会影响到B,根据单一职责原则,需要将此类拆分成更细的粒度
2. 接口隔离原则
客户端不应该依赖它不需要的接口,类间的依赖应该建立在最小的接口,也就是说建立单一接口,接口中的方法要符合一定的设计思想,不能将所有的方法塞到一个接口中,一个模块应对应一个接口,也就是说尽量拆分接口粒度,提高接口的灵活性,易于维护
3. 依赖倒转(倒置)原则
主要表现在三个方面,各实现类之间不能发生依赖,中间的联系是通过抽象类或者接口发生,接口或者抽象类不能依赖实现类,实现类依赖接口或者抽象类
4. 里氏替换原则
简单来说子类可以完全替换父类,且不会出现问题,这样的话可以从以下几个方面来看
- 子类必须完全实现父类的抽象方法
- 子类可以有自己的属性和方法,但是不能覆盖父类的非抽象方法
- 子类可以增加自己特有的方法
- 子类重载父类的时候,方法的前置(入参)比父类更宽松,后置(出餐)比父类更严格
- 子类实现父类抽象方法的时候抛出的异常必须是父类的异常或者父类异常的子集
5. 开闭原则
java中的类应该对增加是开放的,对修改时封闭的
6. 迪米特法则
迪米特法则又叫最少知道原则,通俗的来讲,就是一个类对自己知道的类知道的越少越好。也就是说,对于被依赖的类来说,无论逻辑多么复杂,都尽量的将逻辑封装在类的内部,对外除了提供的public方法,不对外泄漏任何信息。
7. 合成复用原则
尽量使用合成,聚合的方式,而不是使用继承