【Java】软件设计原则

开闭原则(Open/Close Principle, OCP)

对扩展开启,对修改关闭。也就是是通过增加新代码和类来适应新的需求,而不是修改现有的代码。

思考

工作的时候,不是通过增加代码来适应新的需求,往往是通过修改,而且现在写代码没有考虑到复用和可扩展性,仅仅是逻辑的书写,没有考虑到设计原则与设计模式,感觉写代码写的有点笨。。。

例如:类似状态的枚举值的时候,判断不等于某个状态的时候执行的代码逻辑,有可能在增加状态之后与需求违背。

单一职责原则(Single Responsibility Principle, SRP)

一个类或者模块或者接口只专注于完成特定的功能与职责,以提高内聚性和松耦合。

思考

在有类似功能的模块时,其实可以多利用抽象类或者父类抽取公共的接口与方法。但是在考虑相同结构的表的做类似数据隔离的时候,感觉代码写得有点恶心,每个接口确实有特定的职责,但是代码冗余且不够优雅,还是得多练

里氏替换原则(Liskov Substituion Principle, LSP)

子类可以替换父类,且不会引起程序行为的变换。

思考

目前这种原则比较少使用到,感觉父类和抽象类用的不到位。
参考别的博主的博客:软件设计原则(该博主举例说明很详细)
主要是以下几点:

  1. 子类不能修改父类已经实现的方法。
  2. 子类应该尽量保留父类的行为,不应删除父类的方法。
  3. 子类可以增加自己特有的方法,但是不能通过修改父类的方法来完成它们。
  4. 当子类的方法不能满足父类的需求时,可以通过抛出异常或者返回错误信息等方式进行说明。

接口隔离原则(Interface Segregation Principle)

客户端不应该被迫依赖于它不使用的方法;一个类对另一个类的依赖应该建立在最小的接口上。
【设计模式】软件设计原则(接口隔离原则、迪米特法则、合成复用原则)
软件设计原则之 SOLID 原则

思考

感觉这个原则也用的比较少,可能是没用到实现多接口的方式。。。

依赖倒置原则 (Dependency Inversion Principle)

是程序要依赖于抽象接口,不要依赖于具体实现。
软件设计原则(一): 依赖倒置原则

思考

感觉很复杂,实际上service都是接口,service下的impl是具体的实现,偶尔直接调mapper的方法时,mapper也是接口,具体的实现是xml?

总结与碎碎念

感觉很多原则没有用上,,,可能是我还是太菜鸡了,继续摸索,沉淀+1

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值