zoukankan      html  css  js  c++  java
  • 设计模式(九)---缺省适配器模式

    1、简介

       缺省适配模式为一个接口提供缺省实现,这样的类型可以从这个缺省实现进行扩展,而不必从原有接口进行扩展。当原接口中定义的方法太多,而其中大部分又不被需要时,这种模式非常实用。

    由缺省适配器类直接实现目标接口,并为所有方法提供缺省的空实现。用户类就只需要继承适配器类,只实现需要的方法就行了。

    2、源代码

      2.1、目标接口

    package DefaultAdapter;
    /**
     * ********************************************************  
    * @ClassName: InterfaceA 
    * @Description: 目标接口
    *  
    **********************************************************
     */
    public interface InterfaceA {
        void fun1();
        void fun2();
        void fun3();
        void fun4();
        void fun5();
    }

      2.2、缺省适配器抽象类

    package DefaultAdapter;
    /**
     * ********************************************************  
    * @ClassName: AbstractB 
    * @Description: 缺省适配器抽象类
    *  
    **********************************************************
     */
    public abstract class AbstractB implements InterfaceA {
    
        @Override
        public void fun1() {}
    
        @Override
        public void fun2() {}
    
        @Override
        public void fun3() {}
    
        @Override
        public void fun4() {}
    
        @Override
        public void fun5() {}
    
    }

      2.3、用户类(只需要实现自己需要的方法)

    package DefaultAdapter;
    /**
     * ********************************************************  
    * @ClassName: ClassBImpl 
    * @Description: 用户类 可以实现自己需要的方法
    *  
    **********************************************************
     */
    public class ClassBImpl extends AbstractB{
        
        @Override
        public void fun1(){
            System.out.println("fun1");
        }
    }

      2.4、测试类

    package DefaultAdapter;
    /**
     * ********************************************************  
    * @ClassName: DefaultAdapter 
    * @Description: 缺省适配器模式测试类
    *  
    **********************************************************
     */
    public class DefaultAdapterTest {
    
        public static void main(String[] args) {
            // TODO Auto-generated method stub
            ClassBImpl c = new ClassBImpl();
            c.fun1();
        }
    
    }

      2.5、运行

  • 相关阅读:
    Git使用(真的有熟悉吗)
    webpack中webpack.config.js的相关配置表
    import和require(你有过疑惑么)
    webpack打包(离开脚手架,你还好吗)
    webpack再度学习
    最大子段和之分治法
    快速排序之随机快排
    棋盘覆盖问题(看完这个就好)
    稳定匹配问题(脱单就靠这波了)
    Jieba统计词频并生成csv文件
  • 原文地址:https://www.cnblogs.com/shun-gege/p/7489038.html
Copyright © 2011-2022 走看看