java设计模式-适配器模式的实现

java设计模式-适配器模式的实现

ID:38534138

大小:29.00 KB

页数:4页

时间:2019-06-14

java设计模式-适配器模式的实现_第1页
java设计模式-适配器模式的实现_第2页
java设计模式-适配器模式的实现_第3页
java设计模式-适配器模式的实现_第4页
资源描述:

《java设计模式-适配器模式的实现》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、客户端通过类的接口访问提供的服务,一般现有类可提供用户的所需功能,而有时不能满足用户的期望。例如有两个毫无关联的类组合在一起使用,要么就是修改各自的接口,但是在不修改各自接口的前提下,应该怎么做呢?使用Adapter模式,使得原本需要修改接口的才能在一起工作的两个类可以通过此模式不进行修改接口,在一起工作。举个例子,面包制作商可以制作面包,蛋糕制作商可以制作蛋糕,某工厂以前请了面包制作商只做面包,而现在还要制作蛋糕。传统方法增加一个蛋糕制作的接口,并且在实现中增加制作蛋糕的实现。Java代码publicinterfaceMakeFactory{StringgetCake

2、();StringgetBread();}publicinterfaceMakeFactory{StringgetCake();StringgetBread();}实现:Java代码publicclassMakeFactoryImplimplementsMakeFactory{publicStringgetBread(){//TODOAuto-generatedmethodstubreturnnull;}publicStringgetCake(){//TODOAuto-generatedmethodstubreturnnull;}}publicclassMakeFact

3、oryImplimplementsMakeFactory{publicStringgetBread(){//TODOAuto-generatedmethodstubreturnnull;}publicStringgetCake(){//TODOAuto-generatedmethodstubreturnnull;}}这样就ok了。但是想想,以前他是做面包的,有做面包的一套体制,如果再把做蛋糕加进去,工序有可能会乱。并且无法工作。这样我们可以通过Adapter模式。Java代码/***Adaptee被适配器**/publicclassMakeBread{publicStr

4、inggetBread(){System.out.println("++++++bread++++");return"bread";};}/***Adaptee被适配器**/publicclassMakeBread{publicStringgetBread(){System.out.println("++++++bread++++");return"bread";};}以前我只有一个面包房,现在我还要蛋糕房Java代码publicinterfaceMakeFactory{StringgetCake();StringgetBread();}publicinterfaceM

5、akeFactory{StringgetCake();StringgetBread();}最后看看如何通过适配器模式,将不相连的两个类配在一起工作。Java代码/***Adapter适配器**/publicclassMakeCakeextendsMakeBreadimplementsMakeFactory{publicStringgetCake(){System.out.println("++++++cake++++");return"cake";};}/***Adapter适配器**/publicclassMakeCakeextendsMakeBreadimpleme

6、ntsMakeFactory{publicStringgetCake(){System.out.println("++++++cake++++");return"cake";};}这样做,我们的MakeFactory工厂就可以有条不紊的进行制作。我们测试一下Java代码publicclassClient{/***@paramargs*/publicstaticvoidmain(String[]args){MakeCakem=newMakeCake();m.getCake();m.getBread();}}publicclassClient{/***@paramargs*

7、/publicstaticvoidmain(String[]args){MakeCakem=newMakeCake();m.getCake();m.getBread();}}测试结果++++++cake++++++++++bread++++从这里不难看出,此接口可以满足用户的需要。时,成员对象的实体也被复制了。

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。