博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
追MM 之适配器模式实现
阅读量:6266 次
发布时间:2019-06-22

本文共 875 字,大约阅读时间需要 2 分钟。

在朋友聚会上碰到了一个美女Sarah,从香港来的,可我不会说粤语,她不会说普通话,只好求助于我的朋友kent了,他作为我和Sarah之间的Adapter,让我和Sarah可以相互交谈了。
 
 
源角色:Common  只能说普通话,但是MM 听不懂,与MM 要求的不符合
目标角色: Foreign  希望能说外国话
适配器角色: Translate  负责转换的。 是一个实现类,继承了源角色的某个实现类。也可以持有源角色的引用,将部分工作,委托给源角色对象的引用(对象适配器)
 
源码:
源角色:我只提供说汉语
package adapter; 


public 
interface Common { 


    

  
public 
void speakCommon(); 


 
目标角色:我要的是外语
package adapter; 


public 
interface Foreign { 


  
public 
void speakForeign(); 


 
适配器角色: 我负责具体转换工作
package adapter; 


public 
class Translate 
extends My 
implements Foreign { 


  
public 
void speakForeign() { 

    System.out.println(
"说的是外国话"); 

  } 


  
public 
static 
void main(String args[]){ 

    Translate t = 
new Translate();
// 可以和外国MM 交流了 

    t.speakForeign(); 

  } 


 
源角色具体实现类
package adapter; 


public 
class My 
implements Common { 


  
public 
void speakCommon() { 

     

    System.out.println(
"我说的是普通话"); 

  } 



 
本文转自 randy_shandong 51CTO博客,原文链接:http://blog.51cto.com/dba10g/229609,如需转载请自行联系原作者
你可能感兴趣的文章
《超级时间整理术》晨读笔记
查看>>
Spring Boot 2.0(二):Spring Boot 2.0尝鲜-动态 Banner
查看>>
Delphi IdTCPClient IdTCPServer 点对点传送文件
查看>>
Delphi中使用ActiveX的一些心得
查看>>
QT5.8.0+MSVC2015安装以及环境配置(不需要安装VS2015)
查看>>
(原創) C/C++的function prototype和header file (C/C++) (C)
查看>>
深入理解JavaScript系列(29):设计模式之装饰者模式
查看>>
程序员的罪与罚
查看>>
SQL*LOADER错误总结
查看>>
SQL日志收缩
查看>>
【转】MySQL Query Cache 小结
查看>>
SVN分支和合并的简单例子
查看>>
PHP实现的封装验证码类
查看>>
Augular初探
查看>>
PHPStorm下XDebug配置
查看>>
【LeetCode】55. Jump Game
查看>>
Android应用盈利广告平台的嵌入方法详解
查看>>
Linux(CentOS6.5) 开放端口,配置防火墙
查看>>
Func与Action
查看>>
Android ViewPager 应该及技巧
查看>>