zoukankan      html  css  js  c++  java
  • 接口隔离原则(Interface Segregation Principle

    接口隔离原则指出:

    CLIENTS SHOULD NOT BE FORCED TO DEPEND UPON INTERFACES THAT THEY DO NOT USE.

    首先介绍接口污染。

    一个没有经验的设计师往往想节省接口的数目, 将一些功能相近或功能相关的接口合并, 并将这看成是代码优化的一部分。定义:从一个客户类的角度来讲:一个类对另外一个类的依赖性应当是建立在最小的接口上的。 使用多个专门的接口比使用单一的总接口要好。

    比如,一个Door接口具有了lock、unlock的功能,如果一个门既需要lock,unlock功能,还需要监听超时功能,如果一个门开的时间太长,要自动关闭。为实现这一对象,需要在原有Door接口的基础上进行改进。错误的做法就是在Door接口中加入超时部分的代码。但是这样做以后,就会使得所有实现Door接口的对象都有了超时部分的功能,如果不需要就要提供null实现。一个对象从接口中获取了自己不需要的方法或者属性,并使得原来的Door接口变得越来越fat,这就是接口污染。

    Since the clients are separate, the interfaces should remain separate too.

    解决的办法有两个:

    1. Separation through Delegation

    就是适配器模式(Adapter)

    2. Separation through Multiple Inheritance

    使用多个专门的接口比使用单一的总接口要好。

    参考:

    本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/Jackiezhw/archive/2007/04/23/1576675.aspx

  • 相关阅读:
    springboot mail+Thymeleaf模板
    jax-rs示例
    java enum的一种写法记录
    lintcode 最大子数组III
    lintcode 单词接龙II
    idea springboot热部署无效问题
    java8 Optional正确使用姿势
    Spring根据包名获取包路径下的所有类
    无状态shiro认证组件(禁用默认session)
    获取资源文件工具类
  • 原文地址:https://www.cnblogs.com/cy163/p/1531457.html
Copyright © 2011-2022 走看看