设计模式之设计七原则

设计模式可提高软件系统的可维护性和可复用性,增加软件的可扩展性和灵活性。设计七原则是软件设计所遵循的一种基础原则。

一、开闭原则(OCP,Open-Closed Principle)

对扩展开放,对修改关闭。强调用抽象构建框架用细节扩展实现,提供系统的可复用性和可维护性。是软件设计中最基础的原则。

二、依赖倒置原则(DIP,Dependence Inversion Principle)

设计代码结构时,高层模块不应该依赖低层模块,二者都应该依赖抽象。抽象不应该依赖细节,细节应该依赖抽象。
通过依赖倒置可以减少耦合,提高代码的可读性和可维护性。

在代码中可理解为:具体实现类 实现接口,通过面向接口编程,来达到解耦的目的

public interface Calculate {
    int result(int num1, int num2);
}
public class AddCalculate implements Calculate {
    public int result(int num1, int num2) {
        return num1 + num2;
    }
}
Calculate calculate=new AddCalculate();
        calculate.result(1,2);

三、单一职责(SRP,Simple Responsibility Principle)

不要存在一个导致类(方法、接口)变更的原因。如果有多个原因则可以拆分出多个类。后期需求变更维护方便,互不影响。

四、接口隔离(ISP,Interface Segregation Principle)

用多个专门的接口,而不使用单一的总接口,实现类只需要依赖它所需要的接口,不需要的则不应该依赖。ISP 符合高内聚,低耦合的思想。

  1. 一个类对另外的一个类的依赖应该建立在最小的接口之上
  2. 建立单一的接口不要建立总接口
  3. 细化接口,接口方法数量适中

五、迪米特原则(LoD,Law of Demeter)

LoD 又叫最少知道法则,是指一个对象应该对其它对象保持最少的了解。
如果两个类无须直接通信,那么就不应当发生直接的相互调用,可以通过第三方转发该调用。其目的是降低类之间的耦合度,提高模块的相对独立性。(只和朋友说话,不和陌生人说话。出现在成员变量、方法参数输入输出中的类都可以当做朋友,而出现在方法体内部的类不属于朋友类)

六、里氏替换原则(LSP,Liskov Substitution Principle)

里氏替换原则是实现开闭原则的重要方式之一。一个类如果适用于一个父类那么一定也适用于其子类,引用父类的地方必须透明的使用其子类的对象,子类替换父类且程序逻辑不变。

  1. 子类可以实现父类的抽象方法,但不能覆盖父类的非抽象方法
  2. 子类可以增加自己特有的方法
  3. 子类重载父类方法时,方法的前置条件(参数)要比父类的前置条件更宽松
  4. 子类重载父类方法时,方法的后置条件(参数)要比父类的后置条件更严格
  5. 约束继承泛滥
  6. 加强程序健壮性

七、合成复用原则(CARP,Composite/Aggregate Reuse Principle)

指尽量使用对象组合(has-a)/聚合而不是通过继承关系达到软件复用的目的。可以使软件更加灵活,降低耦合。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值