zoukankan      html  css  js  c++  java
  • 接口隔离原则

    接口隔离原则


    基本介绍:

      客户端不应该依赖它不需要的接口,即一个类对另一个类的依赖应该建立在最小的接口


    例如以下场景:

      

     当ClassA需要实现接口interface1中的1、2、3方法时,在方法调用C

     当ClassB需要实现接口interface1中的1、4、5方法时,在方法调用D

    class A{
        
      public void opt1(interface1 i){
        i.opt1();
    }
        public void opt2(interface1 i){
        i.opt2();
    }
      public void opt3(interface1 i){
        i.opt3();
    }
    }
    
    class B{
    
      public void opt1(interface1 i){
        i.opt1();
    }  
      public void opt4(interface1 i){
        i.opt4();
    }
      public void opt5(interface1 i){
        i.opt5();
    }
    }
    
    class C implements interface1{
    
          public void opt1(){
    
    } 
      public void opt2(){
    
    } 
      public void opt3(){
    
    } 
    //以下方法用不着,却必须实现,造成接口隔离原则破坏
      public void opt4(){
    
    } 
      public void opt5(){
    
    } 
    }
    
    class D implements interface1{
    
          public void opt1(){
    
    } 
      public void opt4(){
    
    } 
      public void opt5(){
    
    } 
    //以下方法用不着,却必须实现,造成接口隔离原则破坏
      public void opt2(){
    
    } 
      public void opt3(){
    
    } 
    }
    
    //示例
    public class com{
        public static void main(){
            new A().opt1(new B());
    }
    }

    上述代码中实现  C、D类 产生了冗余的实现方法,接口应该切分

    例子如下:

      

     在进行粒度化拆分后,Class C、D就不会导致内部实现过多冗余的方法,同时接口是最小接口


    注意事项:

    1. 接口尽量小,但是要有限度
    2. 为依赖接口的类定制服务,只暴露给调用的类它需要的方法,它不需要的方法则隐藏起来。只有专注地为一个模块提供定制服务,才能建立最小的依赖关系。
    3. 提高内聚,减少对外交互。使接口用最少的方法去完成最多的事情。 
  • 相关阅读:
    N in 1 & 多重引导光盘制作
    可启动 ISO 合并、Windows 安装光盘合集
    VS 2005 VC++ 文件类型
    Windows 无人值守安装应答文件详解
    30种下载Youtube视频的方法
    解释YOUTUBE FLV 地址
    Windows下进程通信方式[转]
    进程通讯 DELPHI的类实现
    c#.net常用函数列表
    Javascript, How to make a Dress Up Game (Drag and Drop)
  • 原文地址:https://www.cnblogs.com/wuyiyuan/p/15219546.html
Copyright © 2011-2022 走看看