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. 提高内聚,减少对外交互。使接口用最少的方法去完成最多的事情。 
  • 相关阅读:
    配置文件和脚本文件区别
    .sh
    瘋耔思维空间
    vi编辑器的三种模式
    在ubuntu系统荣品开发配套JDK安装
    如何查看自己运行ubuntu是32位还是64位
    志气
    高仿微信朋友圈
    Java OCR tesseract 图像智能字符识别技术 Java代码实现
    构建基于Javascript的移动CMS——加入滑动
  • 原文地址:https://www.cnblogs.com/wuyiyuan/p/15219546.html
Copyright © 2011-2022 走看看