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、运行

  • 相关阅读:
    全站301跳转 PHP
    linux flush memcache缓存
    php Memcache
    PHP MemCached win安装
    windows下安装memcache
    2013 年最好的 20 款免费 jQuery 插件
    License Manager 10.3启动失败解决方法
    .ecp认证文件(10.3版本)
    ArcGIS 10.3 安装及破解
    win7下安装MYSQL报错:"MYSQL 服务无法启动"的3534问题
  • 原文地址:https://www.cnblogs.com/shun-gege/p/7489038.html
Copyright © 2011-2022 走看看