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

Java设计模式——Adapter 适配器模式(1)

    博客分类:
  • Java
阅读更多

写在前面:在四人帮提出的23种设计模式中,每一种设计模式实际上都是为了解决一个编程语言没有实现却又需要的特性。将这23种设计模式进行归类,分为:接口型、责任型、构造型、操作型、扩展型。设计模式中有许多已经可以用开源框架替代,但熟悉每一种设计模式毕竟是每个架构师必修的功课,就像每个化学家都还是需要背诵元素周期表一样。


接口型之一——Adapter适配器

适配器模式简单的说就是为了解决两个既有系统之间的调用问题,看一下实物适配器 就是解决这样一个难题的。举个例子来说,当你正在开发一套网上购物商城系统时,你原本打算采用Soft银行的支付接口进行支付,双方都约定了接口名称与方法进行开发

interface Payment {
       public boolean pay();
}

你调用的方法类似于

class YourClient {
       public void buy(){
       ....
       Payment yp = ... 
       yp.pay();
       ....
       }
} 

你的系统已经开发完成了,就等着Soft银行的pay()方法的实现了,突然Soft银行因债务问题而破产,于是你被迫更换你的支付银行Hard银行,而Hard银行已经有一套完整的支付接口实现了,只不过方法的名字不太一样。

class HardBank {
     public boolean zhifu(){
           ...
     }
}

看来解决方法很简单了,只需要让Hard银行将自己的方法修改成:

class HardBank implements Payment {
      public boolean zhifu(){
           ...
      }
      
      public void pay() {
           this.zhifu();
      }
}

但是要修改Hard银行的代码令对方很不满,对方认为如果每个购物商城都提出这种要求,那他们的代码将会变成

class HardBank implements Payment,Bill,Fuqian... {
      public boolean zhifu(){
           ...
      }
      
      public void pay() {
           this.zhifu();
      }
      
      public void bill() {
           this.zhifu();
      }
      
      public void fuqian() {
           this.zhifu();
      }
      
      .... 
}

于是只能修改你网上商城的代码,一种方法,你可以搜索系统中所有的Payment,调用的pay()方法全部改成zhifu(),又或者你可以使用一个适配器来弥补双方方法的差异

class MyPaymentAdapter extends HardBank implements Payment {
      public boolean pay() {
           super.zhifu();
      }
}

 回顾一下最后的解决方案



 以上就是一个简单的类适配器

  • 大小: 20 KB
0
2
分享到:
评论

相关推荐

    设计模式——适配器模式(adapter)

    在阅读文章《设计模式——适配器模式(adapter)》时,你可以期待了解到更多关于适配器模式的实战案例、优缺点分析以及如何在实际项目中有效利用这一模式来解决问题。同时,提供的`adapter`压缩包文件可能包含示例...

    设计模式——适配器模式

    通过阅读博客文章《设计模式——适配器模式》(链接:https://wjy320.iteye.com/blog/2042323),我们可以深入了解适配器模式的实现细节,包括具体的代码示例以及在实际项目中的应用案例。这个博客可能会讨论如何在...

    浅析Java设计模式【2】——适配器

    ### 浅析Java设计模式【2】——适配器 #### 概念解析 适配器模式是一种常用的设计模式,其核心在于“适配”二字,即如何将一个类的接口转换成客户希望的另一个接口。该模式使得原本由于接口不兼容而不能一起工作的...

    《java设计模式》课后习题模拟试题解答——刘伟.zip

    本资料“《java设计模式》课后习题模拟试题解答——刘伟.zip”主要涵盖了Java设计模式的学习与应用,特别是针对刘伟教授的相关课程的课后习题及模拟试题的解答。 设计模式分为三大类:创建型、结构型和行为型模式。...

    设计模式-Java语言中的应用(pdf)

    《设计模式——Java语言中的应用》是一本专为Java开发者深入理解面向对象设计而编写的经典书籍。设计模式是软件工程领域中经过实践验证的、解决常见问题的有效方案,它们代表了在特定上下文中,针对特定问题的最优...

    设计模式实验报告-适配器模式.docx

    ### 设计模式实验报告——适配器模式 #### 一、引言 设计模式是一种在特定情境下解决软件设计问题的通用解决方案。它为解决常见问题提供了一种可复用的设计思路,帮助开发者构建出更加灵活、易于维护的系统。在...

    Java设计模式源代码——自己看pdf写的

    Java设计模式是软件开发中的重要概念,它是一种在特定情境下解决问题的经验总结,可以提高代码的可读性、可维护性和可复用性。在这个压缩包文件“DesignPatterns”中,很可能包含了各种Java设计模式的源代码实现。...

    C++设计模式课件16_Adapter_适配器.pdf

    ### 设计模式——适配器模式(Adapter Pattern) 在软件工程领域中,设计模式是一种用于解决常见问题的标准化方法。这些模式提供了一种系统化的解决方案,帮助开发人员编写出更易于理解、维护和扩展的代码。适配器...

    JAVA设计模式.影印版

    **Java设计模式——深入解析与应用** 在编程领域,设计模式是解决常见问题的经验总结,是一种通用、可重用的解决方案。Java设计模式是面向对象编程中的精华,它为开发者提供了一套标准的方法来处理软件设计中的常见...

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

    4.4.2现实中的装饰模式——相架 126 4.4.3C#实例——图书馆中的项目 127 4.4.4Java实例——自定义JButton 131 4.4.5优势和缺陷 133 4.4.6应用情景 134 4.5FacadePattern(外观模式) 134 4.5.1定义 134 4.5.2...

    JAVA设计模式(中文).chm

    《JAVA设计模式(中文).chm》是一部专为Java开发者准备的设计模式指南,它深入浅出地阐述了软件工程中的重要概念——设计模式。设计模式是解决常见编程问题的成熟解决方案,是经验丰富的开发者们在实践中总结出的最佳...

    JAVA设计模式--入门

    **Java设计模式——入门** 设计模式是软件开发中的一种最佳实践,它是在特定上下文中解决常见问题的经验总结。Java设计模式是面向对象编程中的一个重要概念,可以帮助开发者编写可复用、可维护、易于理解的代码。这...

    JAVA设计模式

    本篇文章将深入探讨Java设计模式中的核心概念,并结合提供的两个压缩包文件——"Java设计模式(英文).zip"和"Java设计模式配套例题.zip",来解析其中蕴含的关键知识点。 设计模式分为三大类:创建型模式、结构型模式...

    Java设计模式.pdf

    ### Java设计模式——变压器模式详解 #### 一、引言 设计模式是在软件设计中针对常见问题提出的标准化解决方案。在面向对象编程中,设计模式帮助开发者编写可复用且易于理解的代码。Java设计模式涵盖了多种不同的...

    Java设计模式经典搞笑珍藏版

    ### Java设计模式经典搞笑珍藏版 #### 一、引言 《Java设计模式经典搞笑珍藏版》这本书以一种轻松幽默的方式介绍了23种经典的设计模式及其在Java中的应用。设计模式是一种软件工程领域中非常重要的概念,它提供了...

    java 设计模式-个人总结

    ### Java设计模式——个人总结 #### 一、概述 本文档总结了常见的Java设计模式及其应用,涵盖了十种经典的设计模式,并提供了相应的代码示例。这些设计模式旨在解决软件开发过程中遇到的一系列常见问题,帮助...

Global site tag (gtag.js) - Google Analytics