`
zddava
  • 浏览: 243673 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

了解设计模式 之 结构模式(一) -- 适配器模式

阅读更多
设计模式中的结构模式是关于结构的,包括聚合,组合,继承等等,主要使用这些结构来表示程序的逻辑,主要包括下面这些模式:适配器模式(Adapter),桥接模式(Bridge),组合模式(Composite),装饰模式(Decorator),外观模式(Facade),享元模式(Flyweight),代理模式(Proxy)。下面的一些列文章将会逐个讲述。

首先来了解一下适配器模式。

1. 适配器模式(Adapter Pattern)

适配器模式就是两个对象之间的接口的适配,使两个接口不兼容的类可以一起工作,举一个现实点的例子。

比如说朋友去日本出差,让他捎回来一个笔记本,可是这个笔记本使用的是110V的电压,并且用的是两项的插槽,这个时候就要用一个电源适配器了,笔记本插在电源适配器上,适配器接到一个220V的三项的插座上。这个就是一个适配器的例子,在程序中,也可以模拟这种结构,也就实现了适配器模式了。

上边的这个过程用Java语言来进行描述的话,如下所示:

首先是二项插头应该使用的两项插座接口。

	// 两项插座
	public interface Term2PlugSocket {
		
		public void plugin2term();
		
	}


但是现在家里只有三项插座。

	// 三项插座
	public class Term3PlugSocket {

		public void plugin3term() {
			System.out.println("plug in 3 term socket");
		}

	}


所以就需要一个2-3项的适配器了。

	// 2-3项插座适配器
	public class Term2to3Adapter implements Term2PlugSocket {

		private Term3PlugSocket term3PlugSocket = null;

		public Term2to3Adapter(Term3PlugSocket term3PlugSocket) {
			this.term3PlugSocket = term3PlugSocket;
		}

		@Override
		public void plugin2term() {
			System.out.println("execute adapter action");

			// 调用目标的方法
			term3PlugSocket.plugin3term();
		}

	}


最后是两项插头,这个相当于Client。

	// 两项插座
	public class Term2Connector {

		// 把插头插入插座
		public void connect() {
			Term3PlugSocket term3PlugSocket = new Term3PlugSocket();

			// 2-3项插座适配器
			Term2PlugSocket adapter = new Term2to3Adapter(term3PlugSocket);

			// 适配3项插座
			adapter.plugin2term();
		}
		
		public static void main(String[] args) {
			Term2Connector connector = new Term2Connector();
			connector.connect();
		}

	}


适配器模式的定义是:将一个类的接口转换成了客户端需要的接口,使不兼容的接口可以一起工作。

另外,还有一个进一步的话题需要讨论一下,适配器模式其实是分两种的,对象适配器(Object adapter)和类适配器(Class adapter)。上边的例子是对象适配器,而Java是不支持类适配器的,因为类适配器是需要多重继承的。

下面给出适配器模式的类图。

对象适配器:


类适配器:

  • 大小: 12.1 KB
  • 大小: 11.7 KB
分享到:
评论

相关推荐

    JAVA-设计模式-结构型模式-适配器模式

    JAVA-设计模式-结构型模式-适配器模式

    c++设计模式-结构型模式-适配器模式

    c++设计模式-结构型模式-适配器模式,其他工程,c++源码。适配器模式(Adapter)的定义如下:将一个类的接口转换成客户希望的另外一个接口,使得原本由于接口不兼容而不能一起工作的那些类能一起工作。

    设计模式之适配器模式

    适配器模式是一种常用的设计模式,它在软件工程中扮演着重要的角色,主要解决系统间接口不兼容的问题。适配器模式允许不同接口的类协同工作,通过创建一个适配器对象来转换不兼容的接口,使得原本由于接口不匹配而...

    java设计模式之适配器模式

    适配器模式是一种在软件工程中广泛使用的结构型设计模式,它允许两个不兼容的接口之间进行通信。在Java中,适配器模式扮演着重要的角色,尤其在处理遗留代码或者第三方库集成时,能够有效地解决接口不匹配的问题。...

    PHP5设计模式-适配器模式实现

    适配器模式是一种结构型设计模式,它的主要目的是使不兼容的接口能够协同工作。在实际开发中,我们可能会遇到这样的情况:一个类库或者服务提供了一个接口,而我们的代码需要使用另一个接口。适配器模式就充当了两者...

    设计模式:结构型-适配器模式

    适配器模式是一种结构型设计模式,用于解决两个不兼容接口之间的问题,它充当了两者之间的桥梁。适配器模式可以分为三种类型:类适配器模式、对象适配器模式和接口适配器模式。 类适配器模式中,适配器类通过继承...

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

    适配器模式(Adapter Pattern)是一种结构型设计模式,其主要目的是将一个类的接口变换成客户端所期待的另一种接口。通过这种方式,原本由于接口不兼容而无法一起工作的类可以顺利合作。适配器模式有两种实现方式:...

    设计模式--适配器模式

    适配器模式是一种常用的设计模式,它在软件工程中扮演着重要的角色,特别是在解决系统间的兼容性和接口不匹配问题时。适配器模式的核心思想是将一个类的接口转换成客户希望的另一个接口,使原本由于接口不兼容而无法...

    设计模式-适配器模式

    适配器模式是一种在软件设计中广泛使用的结构型设计模式,它的主要目的是解决不同接口或类之间不兼容的问题,使得原本无法协同工作的组件能够协同工作。在这个“设计模式-适配器模式”的资源中,我们可以深入理解...

    java常用设计模式-适配器模式

    适配器模式是一种结构型设计模式,它将一个类的接口转换为客户端所期望的另一个接口,以实现不同接口之间的通信。这种模式可以在不修改现有代码的情况下重用现有类,并且可以使不兼容的接口之间进行通信。 适配器...

    设计模式结构型-适配器

    ### 设计模式结构型-适配器 #### 概述 设计模式是一种在特定情境下解决软件设计问题的模板,通常被用来简化复杂系统的构建和维护。设计模式分为三种类型:创建型、行为型和结构型。其中,结构型设计模式关注于如何...

    JAVA设计模式(抽象类与适配器模式)

    适配器模式是一种结构型设计模式,它的主要作用是在不修改原有类的情况下,使两个接口不兼容的类能够协同工作。在Java中,适配器模式有两种形式:类适配器和对象适配器。类适配器模式通过继承目标接口和适配者类来...

    适配器设计模式ppt

    适配器设计模式是一种结构型设计模式,用于解决接口不兼容的问题。它允许两个原本不能一起工作的对象 совместно工作。 在现实生活中,我们经常遇到适配器的使用,例如欧式插座和笔记本电脑插头的适配器、...

    设计模式适配器模式PPT学习教案.pptx

    适配器模式是一种结构型设计模式,主要解决的是不同接口之间不兼容的问题,使得原本由于接口不匹配而无法协作的类能够协同工作。适配器模式分为类适配器和对象适配器两种形式。 在类适配器模式中,适配器类直接继承...

    无标题设计模式-适配器模式

    适配器模式是一种设计模式,属于结构型模式,它的主要目的是解决接口不兼容的问题,使得原本因接口不匹配而无法协作的类能够协同工作。适配器模式通过创建一个新的适配器类,将一个类的接口转换为客户期望的另一个...

    深入浅出设计模式之适配器模式与外观模式

    ### 深入浅出设计模式之适配器模式与外观模式 在软件工程领域,设计模式被广泛地应用于解决常见的编程问题。其中,《Head First 设计模式》是一本非常受欢迎的经典著作,它通过生动有趣的例子帮助读者理解并掌握...

    Java设计模式之适配器模式

    适配器模式是一种结构型设计模式,它允许两个不兼容的接口能够协同工作。本文将深入探讨适配器模式的原理、分类以及在Java中的实现方式。 #### 适配器模式的基本原理 适配器模式的核心在于创建一个新的类(适配器...

    设计模式之适配器模式与外观模式demo

    在软件设计领域,设计模式是一种经过时间和实践验证的解决方案,用于解决常见的...这个"设计模式之适配器模式与外观模式demo"资源为学习和实践这两种模式提供了宝贵的实例,对于提升编程技能和设计思维具有积极意义。

    设计模式 - 适配器

    适配器模式(Adapter Pattern)是一种结构型设计模式,它允许两个不兼容的接口之间进行通信。在实际应用中,我们常常遇到这样的情况:一个系统需要使用现有的类,但其接口与系统的需求不匹配。适配器模式能解决这种...

    Python 程序语言设计模式思路-结构型模式:适配器模式-将不兼容的接口转换为可兼容的接口

    适配器模式(Adapter Pattern)是一种结构型设计模式,旨在将一个类的接口转换为客户端期望的另一个接口,从而使原本由于接口不兼容而无法一起工作的类能够协同工作。适配器模式通过引入一个适配器类,解决了接口不...

Global site tag (gtag.js) - Google Analytics