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

  • 相关阅读:
    SQL学习
    FOR XML PATH
    IOS学习网址
    weak nonatomic strong等介绍(ios)
    UVALive3045 POJ2000 ZOJ2345 Gold Coins
    UVA713 UVALive5539 POJ1504 ZOJ2001 Adding Reversed Numbers
    UVA713 UVALive5539 POJ1504 ZOJ2001 Adding Reversed Numbers
    UVA439 POJ2243 HDU1372 ZOJ1091 Knight Moves【BFS】
    UVA439 POJ2243 HDU1372 ZOJ1091 Knight Moves【BFS】
    UVA10905 Children's Game
  • 原文地址:https://www.cnblogs.com/shun-gege/p/7489038.html
Copyright © 2011-2022 走看看