Java设计原则——设计原则总结

我们一定要给自己提出这样的任务:第一,学习,第二是学习,第三还是学习。
学习从来无捷径,循序渐进登高峰。

在这里插入图片描述

通过学习了7个设计原则简单做出如下总结:

  1. 单一职责原则:一个类只负责一项职责,只有类中方法数量足够少,可以在方法级别保持单一职责原则。
  2. 接口隔离原则:客户端不应该依赖它不需要的接口,即一个类对另一个类的依赖应该建立在最小的接口上。
  3. 依赖倒转(倒置)原则:高层模块不应该依赖低层模块(这里的高层模块我理解的是调用方,在A类中存在一个属性,这个属性是B类),二者都应该依赖其抽象。意思就是,调用方尽量依赖其接口或者抽象,不要依赖其具体实现。核心思想就是面向接口编程
  4. 里氏替换原则引用基类(基类等于父类,派生类等于子类)的地方必须能透明地使用其子类的对象(透明使用指的是要使用父类方法,但是并不做任何改动,那么我们可以重写该方法,然后方法体通过super.方法,来重新指向父类方法,避免有时候明明想要调用父类方法,但是子类实际上已经重写了,但是自己并不知情,导致各种问题,框架源码当中很多都是这种写法)。在子类中尽量不要重写父类的方法(这里的重写指的是代码发生了变化,而并非我们刚刚所说的重写),如果真的涉及到重写,父类的方法根本满足不了我们的需求,那么就考虑可以通过聚合,组合,依赖来解决问题
  5. 开闭原则:一个软件实体当中,比如类,模块和函数应该对扩展开放(对提供方)对修改关闭(对使用方关闭)。这句话可以理解为,假如A类调用了B类的C方法,方法因为需求要发生改变,这时候我们尽量改变方法内容,而不是说我要去改A的调用。
  6. 迪米特法则:又叫最少知道原则,即一个类对自己依赖的类知道的越少越好。也就是说,对于被依赖的类不管多么复杂,都尽量将逻辑封装在类的内部对外除了提供public 方法,不对外泄露任何信息。
    只与直接的朋友通信,我们称出现成员变量,方法参数,方法返回值中的类为直接的朋友,而出现在局部变量中的类不是直接的朋友。总结为一句话,尽可能减少局部变量中的类
  7. 合成复用原则:原则是尽量使用合成/聚合的方式,而不是使用继承。如果要使用继承关系,则必须严格遵循里氏替换原则。合成复用原则同里氏替换原则相辅相成的,两者都是开闭原则的具体实现规范。
    采用组合或聚合复用时,可以将已有对象纳入新对象中,使之成为新对象的一部分,新对象可以调用已有对象的功能。

一句话来概括:

  1. 开闭原则: 对扩展开放,对修改关闭
  2. 里氏转换原则: 子类继承父类,单独完全可以运行
  3. 依赖倒转原则: 引用一个对象,如果这个对象有底层类型(底层指的是A继承B,那么就用父类),直接引用底层类型
  4. 接口隔离原则: 每一个接口应该是一种角色
  5. 合成/聚合复用原则: 新的对象应使用一些已有的对象,使之成为新对象的一部分
  6. 迪米特原则: 一个对象应对其他对象有尽可能少的了解
  7. 单一原则:一类内容尽量放到一个类当中
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

怪 咖@

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值