`

学习设计模式之适配器模式

阅读更多
  • 首先声明一个鸟类的接口,鸟会飞,还会唱歌
  • package com.adapter;
    
    public interface Bird {
    	public void sing();
    	public void fly();
    }
    

  • 创建老鹰类,实现鸟类接口
  • package com.adapter;
    
    public class Eagle implements Bird {
    
    	public void fly() {
    		System.out.println("I am an eagle, I can fly high");
    	}
    	public void sing() {
    		System.out.println("I can sing loud");
    	}
    }
    

  • 创建家禽接口,家禽也能飞,叫
  • package com.adapter;
    
    public interface JiaQin {
    	public void fly();
    	public void jiao();
    	
    }
    

  • 创建家禽实现类鸭子,鸭子飞得不高,只会嘎嘎叫
  • package com.adapter;
    
    public class Duck implements JiaQin {
    	public void fly() {
    		System.out.println("I can fly a little");
    	}
    	public void jiao() {
    		System.out.println("I can quack");
    	}
    }
    

  • 现在领导要来观察老鹰,但是现在没有老鹰,好吧,那就抓一只鸭子来冒充吧,披上老鹰皮的鸭子
  • package com.adapter;
    
    public class BirdTest {
    	public static void main(String[] args){		
    		JiaQin duck = new Duck();
            //假的老鹰,去冒充鸟类,使之也可以被观察		
    		Adapter phonyEagle = new Adapter(duck);	
    		observerTheBird(phonyEagle);				
    	}
    	//观察鸟类方法
    	public static void observerTheBird(Bird b){
    		b.fly();
    		b.sing();		
    	}
    }
    

  • 让鸭子能披上老鹰皮的,就是那个适配器Adapter,里面真的包了一只鸭子,会装的鸭子
  • package com.adapter;
    
    public class Adapter implements Bird {
    	private JiaQin duck;
    	
    	Adapter(JiaQin duck){
    		this.duck = duck;
    	}
    	public void fly() {
    		duck.fly();
    	}
    	public void sing() {
    		duck.jiao();
    	}
    }
    

  • 运行结果如下:
  • I can fly a little
    I can quack
    


    总结:适配器模式的用处在于装,将类从一个接口,转换到另外一个接口,使原来不一样的类,至少可以看起来是一样的

    1
    0
    分享到:
    评论

    相关推荐

      设计模式之适配器模式Java实现和类设计图

      适配器模式是一种常用的设计模式,它在软件工程中扮演着重要的角色,允许不兼容的接口之间进行通信。...通过学习和理解适配器模式,开发者可以更好地应对接口不兼容的问题,提高代码的复用性和可维护性。

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

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

      设计模式的适配器模式的例子

      适配器模式是一种常用的设计模式,它在软件工程中扮演着重要的角色,允许不同接口的类之间进行通信。适配器模式的核心思想是将一个类的接口转换成客户期望的另一个接口,使得原本由于接口不兼容而无法一起工作的类...

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

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

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

      同时,“[浪曦原创]JAVA设计模式 第1讲 抽象类与适配器模式(jzkangta).exe”应该是一个视频教程,可以帮助你更直观地学习。PPT文件“抽象类与适配器模式.ppt”则可能是教学幻灯片,列出了关键点和示例。最后,“demo...

      设计模式之适配器Adapter

      在软件设计领域,适配器模式(Adapter Pattern)是一种常用的设计模式,它的主要作用是将两个不兼容的接口之间建立连接,使得原本无法一起工作的类能够协同工作。适配器模式可以看作是一个转换器,它将一个类的接口...

      设计模式C++学习之适配器模式(Adapter)

      适配器模式(Adapter)是软件工程中一种常用的设计模式,它允许两个不兼容的接口之间进行通信。在C++编程中,适配器模式能够帮助我们复用现有的类,或者将第三方库的接口与我们的系统接口进行对接,从而提高代码的可...

      设计模式 - 适配器

      在软件工程领域,设计模式是解决常见问题...在给定的压缩包文件`designmodel`中,可能包含了实现这两种适配器模式的示例代码,通过学习这些代码,我们可以更好地理解和运用适配器模式,提高代码的可复用性和可维护性。

      设计模式之--适配器模式

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

      设计模式——适配器模式

      通过阅读和分析这些代码,我们可以深入理解适配器模式在实际编程中的运用,学习如何在C语言环境中实现这种设计模式。 适配器模式的关键优势在于: - **灵活性**:适配器模式允许我们轻松地添加新的适配器,以适应...

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

      实验中,我们不仅学习了如何设计和实现适配器,还通过具体的示例理解了适配器模式的实际应用价值。这种模式能够有效地提升代码的灵活性和可扩展性,对于构建大型软件系统来说是非常有用的工具之一。

      设计模式—适配器模式

      适配器模式是一种软件设计模式,它允许两个不兼容的接口之间进行通信。在软件工程中,我们常常遇到这样的情况:一个系统需要使用一个已经存在的类库或组件,但其接口与我们的系统不匹配,此时适配器模式就发挥了作用...

      iOS 设计模式 适配器模式

      适配器模式是一种软件设计模式,它允许两个不兼容的接口之间进行通信。在iOS开发中,这种模式尤其有用,因为我们需要将不同的组件或库集成到一个统一的系统中,而这些组件或库可能有着各自独立的设计和接口。适配器...

      设计模式适配器模式

      《设计模式》这本书由GoF(Gang of Four)编写,是设计模式领域的经典之作,刘伟教授的版本则可能加入了更多适合中国开发者阅读的实例和解释。适配器模式在书中被详细阐述,包括它的结构、动机以及如何在实际编程中...

      设计模式_适配器模式.zip

      这种类型的设计模式属于结构型模式,它结合了两个独立接口的功能。 这种模式涉及到一个单一的类,该类负责加入独立的或不兼容的接口功能。举个真实的例子,读卡器是作为内存卡和笔记本之间的适配器。您将内存卡插入...

      设计模式适配器模式讲解

      ### 设计模式之适配器模式详解 #### 一、适配器模式概述 适配器模式(Adapter Pattern)是一种常用的软件设计模式,它属于结构型模式的一种。该模式的主要目的是解决不同接口之间的兼容性问题,使原本由于接口不...

      详解JAVA设计模式之适配器模式

      主要介绍了JAVA设计模式之适配器模式的的相关资料,文中示例代码非常详细,供大家参考和学习,感兴趣的朋友可以了解

      设计模式之美—学习笔记

      学习设计模式并不意味着要在所有地方都硬套模式,而是要理解其背后的意图,灵活地在适当的地方应用,以解决实际问题。 设计模式之美在于它们是软件设计的通用语言,无论你使用哪种编程语言,都能通过这些模式与他人...

      Java 经典设计模式讲解以及项目实战

      Java 经典设计模式讲解以及...12 适配器模式 设计模式综合运用 1 门面+模版方法+责任链+策略 2 门面+模版方法+责任链+策略+工厂方法 3 动态代理+Spring AOP 4 责任链模式进阶 Spring Framework设计模式 Spring 设计模式

    Global site tag (gtag.js) - Google Analytics