D 的个人博客

全职做开源,自由职业者

  menu

缺省适配器(Default Adapter)模式的Java实现[00原创]

 这个模式的原理非常的简单,请看下面的例子。

1. 类图



2. Java实现代码

package cn.edu.ynu.sei.defaultAdapter;

/**
 * 接口A<br>
 * 这个接口有5个方法,f1~f5
 * 
 * 
@author 88250
 * 
@version 1.0.0, 2007-8-31
 
*/
public interface InterfaceA
{
    
public void f1();

    
public void f2();

    
public void f3();

    
public void f4();

    
public void f5();
}

package cn.edu.ynu.sei.defaultAdapter;

/**
 * 缺省的适配器角色<br>
 * 这个抽象类为<code>InterfaceA</code>提供了默认实现
 * 
 * 
@author 88250
 * 
@version 1.0.0, 2007-8-31
 
*/
public abstract class AdapterC implements InterfaceA
{

    @Override
    
public void f1()
    {
    
// TODO Auto-generated method stub

    }

    @Override
    
public void f2()
    {
    
// TODO Auto-generated method stub

    }

    @Override
    
public void f3()
    {
    
// TODO Auto-generated method stub

    }

    @Override
    
public void f4()
    {
    
// TODO Auto-generated method stub

    }

    @Override
    
public void f5()
    {
    
// TODO Auto-generated method stub

    }

}

package cn.edu.ynu.sei.defaultAdapter;

/**
 * 继承于<code>AdapterC</code>,并覆写了f1()
 * 
 * 
@author 88250
 * 
@version 1.0.0, 2007-8-31
 
*/
public class ClassB extends AdapterC
{
    @Override
    
public void f1()
    {
    
// 覆写实现
    }
}

3. 总结

这是适配器模式的“平庸化”形式,可以使所考察的类不必实现不需要的那部分接口。在Java里,这个模式的实现运用了接口和抽象类的特性,关于他们的特性,想必大家都有自己的理解和体会吧 :-)

4. 参考文献

  《Design Patterns》、《Java与模式》