追MM 之适配器模式实现

简介:
在朋友聚会上碰到了一个美女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,如需转载请自行联系原作者
相关文章
|
8月前
|
运维 搜索推荐 安全
HTTPS 证书自动化运维:基础知识与重要性
随着互联网发展,HTTPS 成为保护网站和用户数据安全的标准协议。HTTPS 证书(SSL/TLS)验证网站身份并加密通信,分为 DV、OV 和 EV 三种类型,确保数据传输安全。它不仅提高安全性、增强用户信任,还能提升搜索引擎排名。手动管理证书繁琐易错,自动化运维工具如 Let`s Encrypt 和 Certbot 可简化流程,减少错误,提高效率。文章介绍了 HTTPS 证书的基础知识、重要性及自动化运维的概念。
|
数据可视化 Java Maven
爆赞!GitHub上首本IntelliJ IDEA操作手册,标星果然百万名不虚传
还记得刚开始工作的时候使用的是Eclipse,后面是当时公司第一批尝鲜IDEA的人。刚开始用起来其实蛮麻烦的,因为最开始还是带着Eclipse的思维。 比如在Eclipse中一个workspace中可以有多个project,但是在IDEA中就没有workspace的概念了,取而代之的是project,一个project中可以有多个module。 已经不止N次的被读者问到有没有IDEA的教程,其实我觉得这就是一个工具,无非就是一个熟能生巧的过程。在N + 1次被问到的时候,我觉得有必要肝一份使用手册了!
|
机器学习/深度学习 自然语言处理 算法
【数据挖掘】金山办公2020校招大数据和机器学习算法笔试题
金山办公2020校招大数据和机器学习算法笔试题的解析,涵盖了编程、数据结构、正则表达式、机器学习等多个领域的题目和答案。
237 10
|
Java 开发工具
通过Java SDK调用阿里云模型服务
在阿里云平台上,可以通过创建应用并使用模型服务完成特定任务,如生成文章内容。本示例展示了一段简化的Java代码,演示了如何调用阿里云模型服务生成关于“春秋战国经济与文化”的简短文章。示例代码通过设置系统角色为历史学家,并提出文章生成需求,最终处理并输出生成的文章内容。在实际部署前,请确保正确配置环境变量中的密钥和ID,并根据需要调整SDK导入语句及类名。更多详情和示例,请参考相关链接。
|
存储 关系型数据库 MySQL
MySQL为何偏爱B+树而非跳表?
【8月更文挑战第9天】在数据库的世界里,索引是提升查询效率的关键。而在MySQL这样的关系型数据库管理系统中,B+树作为索引结构的首选,其背后的原因值得我们深入探讨。本文将从技术角度解析,为何MySQL选择B+树而非跳表作为其索引结构的核心。
532 6
|
11月前
|
前端开发 JavaScript
React 组件生命周期
React 组件生命周期
93 0
|
监控 Cloud Native 安全
云原生架构下的微服务治理实践
本文旨在深入探讨在云原生环境下,如何有效实施微服务治理。通过分析微服务架构的核心价值与挑战,结合具体的云平台工具和最佳实践,文章详细阐述了服务发现、配置管理、弹性设计等关键治理策略。此外,文章还提供了关于如何在保障系统可观测性的同时,确保安全性和合规性的实用建议。读者将获得一套完整的微服务治理框架,以及在云原生旅程中应对复杂问题的能力提升。
|
消息中间件 数据可视化 JavaScript
什么是链路追踪?分布式系统如何实现链路追踪?
什么是链路追踪?分布式系统如何实现链路追踪?
|
Java 编译器
《JAVA EE》内部类(上篇)注意事项
《JAVA EE》内部类(上篇)注意事项
128 0
《JAVA EE》内部类(上篇)注意事项
|
存储 索引
Hologres存储引擎的基本抽象
Hologres存储引擎的基本抽象
276 0