面向对象设计原则——接口隔离原则(ISP)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_22841811/article/details/52706022

面向对象设计原则——接口隔离原则(ISP)

tags:设计模式

ISP–No Client should beforced on methods it does not ture.

原则简介

接口隔离原则要求客户程序无需被迫依赖于它用不到的方法.

接口隔离原则与前面的单一职责原则是相辅相成的,如果每个接口只定义”单一职责”,一般不容易出现Fat interface,而且冗余较少.但单一职责原则并不保证客户程序只知道必要的信息,甚至在有些情况下接口隔离原则与单一职责原则会出现一定的冲突,设计时我们要根据用户界面,性能等因素决策.

解释举例

例如,对于一个技术支持服务台应用而言,人员信息需要知道一些姓名,email等基本信息;但对于一个人力资源系统而言,,人员信息就会很多了.尽管按照单一职责原则人力资源系统中的person接口可以分解为多个接口,但即便这样一般也会比Service Desk多.

所以,贯彻接口隔离原则不是简单地说多余或者不多余,衡量的标准是有前提的.从设计角度看,它要依据业务需求来衡量到底时候多余,确保每个领域背景下贯彻接口隔离原则.实际项目中,很多类型也存在类似的问题,因此,我们可以将它们划分到不同的Java package中

依据业务领域分割后的接口隔离原则:

package common
class interface Person{}

package servicedesk
class interface Person extends Person{
    void sendEmail();
    void sendSMS();
    set..
    get..
}

package hr
class interface Person extends Person{
    set..
    get..
}
阅读更多
换一批

没有更多推荐了,返回首页