编程思想:里式替换原则(LSP)和接口隔离原则(ISP)

里式替换原则:

请看我上一博文的单一职责原则的实例代码,其实在单一职责原则中我们已经使用了里式替换原则。

里式替换原则:所有引用父类对象的地方,都可以使用其子类类型代替。看单一职责原则的示例代码不难发现,正是如此,也可以说里式替换原则是我们的最低层的,用了里式替换原则,我们就会和单一职责原则扯上关系,还有后面提到的依赖倒置原则和开放封闭原则。我们后面在实例代码中慢慢体会。

接口隔离原则:

遵循三句话:

  1. 客户端不应该依赖它不需要的接口
  2. 一个类对另外一个类的依赖、应该建立在最小的接口上
  3. 接口尽量细分,不要再一个接口中放很多方法

 

 

在上述代码中,我们定义一个成绩接口,我们的老师和学生类都继承于这个接口,我们老师需要添加修改删除成绩,可是我们的学生只能查询、打印成绩,这样子的设计就是错误的,违反了我们接口隔离原则。因为我们学生客户端依赖它不需要的接口

我们可以进行优化,将成绩接口划分为学生成绩接口和老师成绩接口。 

 

 

 

 这样我们把它拆分成两个接口,我们的学生和老师类分别继承于这两个接口,这就实现了我们的接口隔离原则,我们可以回过头结合代码去看接口隔离原则遵循的三句话。

接口隔离原则和单一职责原则的关系:

  • 单一职责原则:我们的类只干一件事,影响我们类变化的原因只有添加功能,为了高内聚(模块内部元素的相似程度尽量高)
  • 接口隔离原则:为了低耦合(模块之间的依赖程度要低)可以细读遵循三句话的第二句。

他们的区别:拿我们现实生活中的举例说明:就好比我们的公司的各个部门,开发部。财务部。行政部门。这对应的就是接口隔离原则。我们的开发部专门来写代码,开发产品。财务部专门管理财务。这就是我们的单一职责原则,如果我们的开发既要写代码还有管理财务,这不就是低内聚了吗。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值