`
biqing0427
  • 浏览: 54962 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

我工作的那点事--学习《设计模式》实例应用(Adapter模式)

阅读更多
    一想到这个模式,我就想到一个谚语“挂羊头卖狗肉”,哈哈,虽然比较难听,感觉还是比较准确的表达这个意思的。
Adapter模式:Adaptee(被适配者),Adaptor(适配器)和Adapter(组装前两者).

   当需要将两者结合,但是又不能改变这两者时,要用到这种模式。

   还是用刚才的那个谚语作解释吧,比较形象点:

羊头:Adaptee
狗肉:Adaptor
卖者:Adapter

呵呵,下面的例子相关信息和这个谚语没有必然的联系。

其实很多时候,原来的信息在传播过程中被适配了,当你得到信息时,还以为是原来的信息。


下面还是用工作上的一些事情做实例解析下吧:

有些公司老总在国外,一些事情是由这边的manager代理的(好像是proxy模式,呵呵),有时候我们得到的信息都是他传达过来的,
他的一些处理方式,我们会都认为是老总的处理方式。


1.Adaptee:CEO

pubilc class CEO{
public String sendMessage(String message){
return "CEO:"+message;
}
}


2.Adaptor: Manager

pubilc class Manager{
public String sendMessage(String message){
return "Manager:"+message;
}
}


3.Adapter:Adapter 这里就进行改变了

pubilc class Adapter extends CEO {

private Manager manager;

public void setManager(Manager manager){
this.manager = manager ;
}

public String sendMessage(String message){
return manager.sendMessage(message);//好像是CEO的指令 其实已经变成了manager的指令了。
}
}


4.调用如下过程:

Manager manager = new Manager();
Adapter adaper = new Adapter();
adaper.setManager(manager);
adaper.sendMessage("message from ceo");


原理基本上解析清楚了,下面描述一下另外一种方法。

1.Adaptee:CEO

pubilc interface ICEO{
public String sendMessage(String message);
}

public class CEO implements ICEO{

public String sendMessage(String message){
return "CEO:"+message;
}
}


2.Adaptor: Manager

pubilc interface IManager{
public String sendMessage(String message);
}

pubilc class Manager implements IManager{
public String sendMessage(String message){
return "Manager:"+message;
}
}


3.Adapter:Adapter

pubilc class Adapter implements CEO,Manager {

private Manager manager;
private CEO ceo;

public void setManager(Manager manager){
this.manager = manager ;
}

public void setCEO(CEO ceo){
this.ceo = ceo ;
}

public String sendMessage(String message){
return manager.sendMessage(message);
}
}
分享到:
评论

相关推荐

    C#设计模式—适配器模式应用实例

    C#设计模式之适配器模式应用实例

    设计模式 - 适配器模式(C++实例)

    适配器模式 设计模式 Adapter 还请各位大S指教

    设计模式:可复用面向对象软件的基础--详细书签版

    因此我们欢迎广大读者的批评与指正,无论从书中采用的实例、参考,还是我们遗漏的已知应用,或应该包含的设计模式等方面。你可以通过Addison-Wesley写信给我们,或发送电子邮件到:design-patterns@cs.uiuc.edu。你...

    设计模式之适配器模式(Adapter模式)

    介绍24设计模式中的Adapter模式,如果使用,实例讲解,等等

    深入浅出设计模式(中文版)

    1.1什么是设计模式 2 1.2设计模式的作用 3 1.3GRASP模式的分类 4 1.4GoF设计模式的分类 4 1.5模式的学习阶段 6 第2章负责任地设计对象——GRASP 9 2.1InformationExpert(信息专家) 11 2.2Creator(创造者)...

    设计模式--C++

    1.1 什么是设计模式 2 1.2 Smalltalk MVC 中的设计模式 3 1.3 描述设计模式 4 1.4 设计模式的编目 5 1.5 组织编目 7 1.6 设计模式怎样解决设计问题 8 1.6.1 寻找合适的对象 8 1.6.2 决定对象的粒度 9 1.6.3 指定对象...

    深入浅出设计模式(中文版电子版)

    1.1什么是设计模式 2 1.2设计模式的作用 3 1.3GRASP模式的分类 4 1.4GoF设计模式的分类 4 1.5模式的学习阶段 6 第2章负责任地设计对象——GRASP 9 2.1InformationExpert(信息专家) 11 2.2Creator(创造者)...

    设计模式可复用面向对象软件的基础.zip

    本书设计实例从面向对象的设计中精选出23个设计模式,总结了面向对象设计中最有价值的经验,并且用简洁可复用的形式表达出来。本书分类描述了一组设计良好,表达清楚的软件设计模式,这些模式在实用环境下有特别有用...

    《设计模式》中文版(23个设计模式的介绍与运用)

    1.1 什么是设计模式 2 1.2 Smalltalk MVC中的设计模式 3 1.3 描述设计模式 4 1.4 设计模式的编目 5 1.5 组织编目 7 1.6 设计模式怎样解决设计问题 8 1.6.1 寻找合适的对象 8 1.6.2 决定对象的粒度 9 1.6.3 指定对象...

    设计模式实例(英文版)

    设计模式实例,包含AbstractFactory、adapter、bridge、builder、chain、command等22个设计模式

    设计模式 GOF 23

    本书设计实例从面向对象的设计中精选出23个设计模式,总结了面向对象设计中最有价值的经验,并且用简洁可复用的形式表达出来。本书分类描述了一组设计良好,表达清楚的软件设计模式,这些模式在实用环境下有特别有用...

    33种JAVA设计模式DEMO

    这些设计模式提供了一种在创建对象的同时隐藏创建逻辑的方式,而不是使用 new 运算符直接实例化对象。这使得程序在判断针对某个给定实例需要创建哪些对象时更加灵活。 工厂模式(Factory Pattern) 抽象工厂模式...

    23种设计模式实例(JAVA实现)

    用java实现的23种设计模式的实例,对学习设计模式的你应有帮助。

    网络编程、常用设计模式

    详细的jsp网络编程、常用设计模式! 前言 3 第一部分:网络编程 4 一、了解URL 4 二、读取URL中的资源 4 1、URL构造方法: 5 2、读取资源 5 三、INETADDRESS类 5 四、SOCKET类 6 1、Socket套接字连接 6 2、Socket...

    设计模式C#实例——大洋系统

    CSharp --AbstractFactory --Adapter --Bridge --Builder --ChainOfResponsibility

    设计模式(.PDF)

    1.1 什么是设计模式 2 1.2 Smalltalk MVC中的设计模式 3 1.3 描述设计模式 4 1.4 设计模式的编目 5 1.5 组织编目 7 1.6 设计模式怎样解决设计问题 8 1.6.1 寻找合适的对象 8 1.6.2 决定对象的粒度 9 1.6.3 指定对象...

    GOLF设计模式(C++语言版)

    1.1 什么是设计模式 2 1.2 Smalltalk MVC中的设计模式 3 1.3 描述设计模式 4 1.4 设计模式的编目 5 1.5 组织编目 7 1.6 设计模式怎样解决设计问题 8 1.6.1 寻找合适的对象 8 1.6.2 决定对象的粒度 9 1.6.3 ...

    软件设计师必读的书-设计模式

    1.1 什么是设计模式 2 1.2 Smalltalk MVC中的设计模式 3 1.3 描述设计模式 4 1.4 设计模式的编目 5 1.5 组织编目 7 1.6 设计模式怎样解决设计问题 8 1.6.1 寻找合适的对象 8 1.6.2 决定对象的粒度 9 1.6.3 指定对象...

    《国外写的,翻译版本》设计模式

    最出名的设计模式,语言诙谐明了。 目 录 序言 前言 读者指南 第1章 引言 1 1.1 什么是设计模式 2 1.2 Smalltalk MVC中的设计模式 3 1.3 描述设计模式 4 1.4 设计模式的编目 5 1.5 组织编目 7 1.6 设计模式怎样解决...

    设计模式--可复用面向对象软件的基础

    1.2 Smalltalk MVC中的设计模式 1.3 描述设计模式 1.4 设计模式的编目 1.5 组织编目 1.6 设计模式怎样解决设计问题 1.7 怎样选择设计模式 1.8 怎样使用设计模式 第二章 实例研究:设计一个文档编辑器 2.1 设计问题...

Global site tag (gtag.js) - Google Analytics