一想到这个模式,我就想到一个谚语“挂羊头卖狗肉”,哈哈,虽然比较难听,感觉还是比较准确的表达这个意思的。
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++中实现这些设计模式,并将它们融入到自己的编程实践中。 总而言之,设计模式是软件开发中的宝贵财富,...
### 设计模式精解——GoF 23种设计模式解析及C++实现源码 #### 0. 引言 设计模式是软件工程领域的一个重要概念,它提供了一种解决常见问题的方法论。GoF(Gang of Four)所提出的23种设计模式被视为面向对象设计的...
通过学习和掌握GoF的23种设计模式,可以显著提高程序员的编码水平,使得开发出的软件系统更加健壮、可扩展、易维护。以上每种模式都有其特定的应用场景,理解和掌握它们的关键在于不断实践和总结,在实际项目中灵活...
### 设计模式精解—GoF 23种设计模式解析及C++实现源码 #### 0. 引言 设计模式作为一种重要的面向对象设计工具,在软件开发中扮演着至关重要的角色。本文旨在深入解析GoF(Gang of Four,四人组)提出的23种设计...
《设计模式那点事》这本书的PPT为我们提供了一种深入理解和学习设计模式的途径。在这里,我们将深入探讨设计模式的核心概念、分类以及它们在实际开发中的应用。 首先,设计模式基于面向对象编程思想,其核心目标是...
设计模式的学习和应用分为几个阶段:首先自己学会设计模式,然后将其转化为自己的语言表达出来,接着是教授他人并最终记录下来。这种学习路径要求学习者不仅要理解设计模式本身,还要具备清晰的表达能力和深刻的理解...
通过学习和应用这些设计模式,开发者不仅可以提高代码的可读性、可维护性和可扩展性,还能提升团队间的沟通效率,因为设计模式是软件工程中的通用语言。对于任何有志于提升软件开发水平的人来说,理解和掌握设计模式...
Java设计模式是面向对象编程中的重要概念,它们是软件开发过程中经过反复验证并总结出的最佳实践,用于解决常见...在阅读和实践这些Java设计模式实例时,要注意理解每个模式的核心思想,以及如何在实际项目中灵活运用。
通过学习设计模式,我们可以更好地组织代码结构,提高软件质量,同时减少开发过程中的重复工作。本文将详细介绍GoF提出的23种设计模式,并提供C++实现示例,帮助读者深入理解这些模式的应用场景和技术细节。 #### ...
通过深入学习《设计模式——Java语言中的应用》,开发者能够更好地理解和应用这些模式,从而编写出更加高效、可扩展的Java程序。无论是初级开发者还是经验丰富的程序员,都应该不断探索和实践设计模式,以提升自己的...
学习设计模式能带来诸多好处,如复用成熟的解决方案,提高团队沟通效率,提升设计质量,增强代码的可维护性。同时,设计模式也是一种通用的术语,使得开发者能用共同的语言讨论和分析设计问题。 在实际应用中,...