1. 程式人生 > >設計模式(九)---缺省適配器模式

設計模式(九)---缺省適配器模式

inter 這樣的 script 定義 類型 trac esc def log

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

技術分享

設計模式(九)---缺省適配器模式