Spring学习 第一章 软件架构设计原则

1.1开闭原则(OCP)

是指对一个软件实体(类、函数、模块等) 扩展开放,对修改关闭。其核心思想是面向抽象编程
理解为:当要修改逻辑功能的时候只通过添加代码就可以完成,而不需要修改之前的代码。

1.2 依赖倒置原则(DCP)

指高层代码不应该依赖底层代码的实现(逻辑实现代码),而应该依赖底层代码的抽象(接口)。可以减少模块之间的耦合,增加模块的稳定性。

1.3单一职责原则(SRP)

指不要存在多于一个原因导致类的修改,可以理解为整个类之前的多个职责分到多个类去完成,可以减少模块之间的耦合程度。

1.4 接口分离原则(ISP)

指把一个总臃肿的接口分割成多个专门的接口,客户端不应该依赖他不需要的接口。分为下列三点:
(1).一个类对另一个类的依赖,应该只建立在最小的接口上。
(2). 建立单一化的接口,而不是建立庞大臃肿的接口。
(3). 尽量细化接口,但并不是接口中的方法越少越好,如果过少,那么模块之间的耦合可能要通过多个接口,增加了模块之间的耦合。

1.5迪米特法则(LoD)

指一个类应该只和自己的朋友类交流, 不和陌生类交流,一个对象应该和其他对象保持最少的联系。又称最少知道原则(LKP)

1.6里氏替换原则(LSP)

指如果存在一个类型T1的对象O1,都存在一个另一个类T2的对象O2,使得T1中的所有方法P在所有对象O1中都可以替换成O2时,程序的行为没有发生改变,那么类型T2是T1的子类型。
简单理解为:如果一个软件实体适用于父类,那么一定适用于子类,即:父类出现的地方,可以使用子类进行替换,但是保持程序逻辑不变,子类可以扩展父类的功能,但是不能修改父类的原本的功能。
分为以下情况:
1.子类可以实现父类的抽象方法,但是不可以覆盖父类的抽象方法
2.子类可以增加自己特有的方法。
3.当子类重载父类的方法时,子类方法的前置条件(输入参数)要比父类方法的输入参数更加宽松,以保持可以使用子类实现父类的方法逻辑不变。
4.当子类重载父类的方法时(重写,重载或实现抽象),方法的后置条件应该比父类的更加严格或者是和父类的保持一样。

LSP的一个典型例子就是不可以让正方形类去继承长方形类。

1.7合成复用法则

表示尽量使用聚合或者组合的方式代替对象之间的继承关系,减少对象之间的继承耦合。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值