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. 提高内聚,减少对外交互。使接口用最少的方法去完成最多的事情。 
  • 相关阅读:
    实战-百度云[大文件/文件夹]下载限制破解
    IOCP之客户端及消息传递
    IOCP简单实现
    Charles V4系列更新 | 绿色特别版 | 视频教程
    Charles 3.11.5 绿色特别版
    VC运行库合集2005/2008/2010/2012/2013/2015
    手游测试之《弱网测试》
    后端性能测试不可不知的二三事
    linux性能指标及分析工具
    Shell笔记-04
  • 原文地址:https://www.cnblogs.com/wuyiyuan/p/15219546.html
Copyright © 2011-2022 走看看