zoukankan      html  css  js  c++  java
  • 敏捷开发原则-ISP(接口隔离原则)

    ISP(Interface Segregation Principle)

      定义:如果类的接口定义暴露了过多的行为,则说明这个类的接口定义内聚程度不够好。也就是说,类的接口可以被分解为多组功能函数的组合,不同的客户类可以选择不同的功能接口。

    目前设计一个接口,它包含了一款自动门所需要的功能,开关,自动关闭等。

    但是并不是每个门都有自动关闭的功能,所以timeOut超时这个方法放在该接口中,就会导致所有实现这个接口的子类都会默认的继承了这个方法,哪怕子类中不对这个方法做处理。

    而且如果每个子类都把自己的新方法添加到基类接口中去,那么这个接口就会包含很多多余的方法,这些方法不适用于所有的子类,接口也会显得特别臃肿,到时候每个子类都会包含很多

    不必要的方法。

     这里我们可以把接口拆分成2个,拆分成Door和TimeClient2个接口,这样Door就只保持原有的基本功能,而timeOut超时的方法则放到TimeClient接口中,这样有就可以解决上述中接口臃肿的问题。

      结论:不应该强迫客户依赖它们不用的方法,臃肿的接口会导致客户程序之间产生一些不必要的耦合关系,当一个臃肿的接口发生改变时,那么会影响到它所有的子类的实现。所以客户只需要

     实现它自己所需要的方法就够了,这样使得客户类之间减少不必要的依赖。

  • 相关阅读:
    雷霆战机
    各种 Python 库/模块/工具
    redis
    25
    为什么Python中“2==2>1”结果为True
    thinkphp3.2路由美化,url简化
    thinkphp调整框架核心目录think的位置
    thinkphp3.2中开启静态缓存后对404页面的处理方法
    thinphp中volist嵌套循环时变量$i 被污染问题,key="k"
    thinkphp中如何是实现多表查询
  • 原文地址:https://www.cnblogs.com/culushitai/p/10270237.html
Copyright © 2011-2022 走看看