关于JAVA设计原则的个人理解
一、单一职责原则
我理解的单一职责是,当一个类有大量的方法,代码过于复杂时,我们应该对代码进行抽离整理,形成单独的一个类,也就是作为一个单独的类应该只完成其应该完成的职责,除了简单的职责可以兼任,复杂的职责必须独立,另创建一个类来承担职责。
另配上较官方的描述:
![在这里插入图片描述](https://img-blog.csdnimg.cn/20201025214144237.png#pic_center)
二、开闭原则
当业务需要改变时,一个实体方法的改变,不应该在原有代码上进行修改,而是应该再不改变自身的情况下,根据业务需求,额外扩展其他方法来实现。同时将不同的却类似的方法抽象出来,方便功能的扩展。
另配上较官方的描述:
![在这里插入图片描述](https://img-blog.csdnimg.cn/20201025215154730.png#pic_center)
三、聚合/组合复用原则
在实现一个功能的时候,尽量少用继承来完成代码的复用,而是应通过组合的方式。因为在继承中,增加一个方法,如果去修改父类就会影响所有子类,会破坏子类的封装,并且java是单根继承,只能继承一个父类,不能复用多个类的代码,而组合没有这个限制。
四、迪米特法则
一个类与另一个类的交互,应该做到最少的接触交互,不要通过一个类知道并操作另一个类所属的类成员,应该降低本类成员的访问权限。可以理解为不要轻易和陌生人说话。
另配上较官方的描述:
![在这里插入图片描述](https://img-blog.csdnimg.cn/20201025220450684.png#pic_center)
五、依赖倒置原则
简单来说不要面向具体编程,要面向抽象编程。高层次的不应该依赖于低层次的模块,他们应该依赖于抽象,否则底层的任何修改都会影响到上层。抽象不依赖于具体实现,具体实现应该依赖于抽象。
另配上较官方的描述:
![在这里插入图片描述](https://img-blog.csdnimg.cn/20201025220814646.png#pic_center)
六、里式替换原则
任何父类出现的地方,都可以用子类进行替换。 里氏替换是对开闭原则的一个补充,当父类方法改变就会影响所有子类,但这个方法不一定是所有子类都能适用的,所以这个时候就应该断开父类的继承。
另配上较官方的描述:
![在这里插入图片描述](https://img-blog.csdnimg.cn/20201025221254620.png#pic_center)
七、接口隔离原则
一个类不要去实现他不需要的接口,也可以理解为不要让开发者接触到他用不上的方法,这个时候要实现接口一般要实现最小的那个接口,这样的好处是便于项目的组织和分工。
另配上较官方的描述:
![在这里插入图片描述](https://img-blog.csdnimg.cn/20201025221850623.png#pic_center)