设计模式(九)---缺省适配器模式

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

时间: 2024-10-15 20:29:36

设计模式(九)---缺省适配器模式的相关文章

设计模式:缺省适配器模式

原创:http://leihuang.org/2014/12/06/default-adapter/ Structural 模式 如何设计物件之间的静态结构,如何完成物件之间的继承.实 现与依赖关系,这关乎着系统设计出来是否健壮(robust):像是易懂.易维护.易修改.耦合度低等等议题.Structural 模式正如其名,其分类下的模式给出了在不同场合下所适用的各种物件关系结构. Default Adapter 模式 Adapter 模式 Bridge 模式 Composite 模式 Deco

《Head First 设计模式》学习笔记——适配器模式 + 外观模式

在ADO.NET中,对于我们从数据库中取出的数据都要放到一个DataSet中,不管你是Access的数据库,还是SQL的数据库,或者是Oracle的数据库都要放到DataSet中..NET中并没有提供如:SqlDataSet.OleDbDataSet.OracleDataSet等,它只提供了一种DataSet就是用SqlDataAdapte等去填充数据:为什么这一个DataSet能存放不同的数据呢?就是有这些适配器来适配.----题记 设计模式 适配器模式:将一个类的接口,转换成客户期待的另一个

Java设计模式(八) 适配器模式

原创文章,转载请务必将下面这段话置于文章开头处. 本文转发自Jason's Blog,原文链接 http://www.jasongj.com/design_pattern/adapter/ 适配器模式介绍 适配器模式定义 适配器模式(Adapter Pattern),将一个类的接口转换成客户希望的另外一个接口.适配器模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作. 适配器模式类图 适配器模式类图如下 适配器模式角色划分 目标接口,如上图中的ITarget 具体目标实现,如Concr

设计模式--缺醒适配器模式

http://www.cnblogs.com/xwdreamer/archive/2012/03/29/2424008.html在没有好好地研习面向对象设计的设计模式之前,我对Java接口和Java抽象类的认识还是很模糊,很不可理解. 刚学Java语言时,就很难理解为什么要有接口这个概念,虽说是可以实现所谓的多继承,可一个只有方法名,没有方法体的东西,我实现它又有什么用呢?我从它那什么也得不到,除了一些方法名,我直接在具体类里加入这些方法不就行了吗? 为什么一定要有抽象类这个概念?为什么就不能把

java 设计模式-缺省适配器模式

本文转载地址:http://www.cnblogs.com/iyangyuan/archive/2013/03/11/2954808.html 在程序设计过程中,读者很可能遇到这样一种困境:设计了一个接口,但实现这个接口的子类并不需要实现接口中的全部方法,也就是说,接口中的方法过多,对于某些子类是多余的,我们不得不浪费的写上一个空的实现. 今天小菜提到的"抽象接口",就是用来解决这个问题的. 为了不误导读者,先说明一下,什么是"抽象接口". 所谓"抽象接口

Java设计模式--缺省适配器模式

我认为这个模式比较常见,还记得我们学习Swing的时候吗,有没有见过很多Adapter?那时候不知道Adapter的意义所在,但至少知道他能够省去我们不需要的实现. 这个社会有N中职业(job),但是每个人(people)只可能从事其中一种或者几种,职业类型设成一个接口,难道每次给人设置职业的时候要全部实现吗?在这里就要有一个缺省适配器,缺省适配器是个抽象类,仅仅implements而不实现.然后客户端直接使用Adapter即可选择需要实现的方法,而不用实现全部. Job package com

设计模式06: Adapter 适配器模式(结构型模式)

Adapter 适配器模式(结构型模式) 适配(转换)的概念无处不在:电源转接头.电源适配器.水管转接头... 动机(Motivation)在软件系统中,由于应用环境的变化,常常需要将“一些现存的对象”放在新的环境中应用,但是新环境要求的接口是这些现存对象不能满足的.如何应对这种“迁移的变化”?如何既能够利用现有对象的良好表现,同时又能满足新的应用环境所要求的接口? 意图(Intent)将一个类的接口转换成客户希望的另一个接口.Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一

跟着实例学习设计模式(8)-适配器模式adapter(结构型)

适配器模式属于结构型设计模式 设计意图:将一个类的接口转换成客户希望的另外一个接口.A d a p t e r模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作. 该模式正如名字一样适配器,就是为了能使之前的老接口可以焕发青春的模式,使用一个新的接口把已经存在的接口发布出去. 这样的设计模式,我们一版在企业信息化升级时会经常使用,有些企业存在的老接口经常不能对外接收数据,而重构又成本太高,那就只能使用适配器模式了,将老接口重新包装发布. 当然也有设计时就会使用的时候,大家可能不相信,不

设计模式学习笔记之适配器模式

什么是适配器模式? 适配器模式(有时候也称包装样式或者包装)就是将一个类的接口适配成用户所期待的.一个适配允许通常因为接口不兼容而不能在一起工作的类工作在一起,做法是将类自己的接口包裹在一个已存在的类中. 看一个我们日常生活中的图: 如果出国旅行,肯定会买一些国外的优质的电器回来,但是国外的电器插头可能是这样的.. 而国内的插座确实这样的.. 肯定是插不进去的..怎么办呢?神通广大的适配器就该出场了! 这下应该可以理解适配器是用来干嘛的了吧,其实设计模式中的适配器模式和这个道理是一样的. 我们来