设计模式之二 适配模式

适配模式

可能有些人我会说观察模式,这里因为想趁热,第一个模式说了策略模式然后再借用代码说适配模式感觉省心。

适配模式大家应该很熟悉,我们日常生活中就有用到,例如变压器。有一天你需要出差去美国,可是带的是笔记本电脑 悲催的是 上面印着 Make in china 。大家知道 中国用的电压是220V而美国用的是110V,所以这会给你出差美国带来麻烦。如果你拥有了一个适配器(变压器),那就很好解决了。

适配模式的理解:将一个类的接口转换成我们想要的接口。

接着第一个模式说,如果现在有一只火鸡,它只会飞一点点距离,叫的声音如“咯咯咯咯咯”。

以下是实现适配器模式的实例代码:

/** * Created by Administrator on 2018/1/13. *  * 火鸡的接口 */public interface TurkeyInterface {    void gege();    void fly();}

//火鸡对象
public class Turkey implements TurkeyInterface {    @Override    public void gege() {        System.out.println("我只会咯咯咯的叫");    }

    @Override    public void fly() {        System.out.println("我只会飞一点点距离");    }}
/** * Created by Administrator on 2018/1/13.、*火鸡适配器 */public class TurkeyAdapt extends Duck {    Turkey turkey;

    public TurkeyAdapt(Turkey turkey) {        this.turkey = turkey;    }

    public void flyBehavior() {        turkey.fly();    }

    public void maleBehavior() {        turkey.gege();    }}//测试
public class DuckTest {    public static void main(String[] args){

        //适配模式

        Turkey turkey=new Turkey();        Duck turkeyAdapt=new TurkeyAdapt(turkey);        turkeyAdapt.flyBehavior();        turkeyAdapt.maleBehavior();

    }}
 
 

原文地址:https://www.cnblogs.com/xiaohuachen/p/8277321.html

时间: 2024-12-13 21:14:44

设计模式之二 适配模式的相关文章

Java设计模式之二工厂模式

在上一篇中我们学习了单例模式,介绍了单例模式创建的几种方法以及最优的方法.本篇则介绍设计模式中的工厂模式,主要分为简单工厂模式.工厂方法和抽象工厂模式. 简单工厂模式 简单工厂模式是属于创建型模式,又叫做静态工厂方法模式.简单工厂模式是由一个工厂对象决定创建出哪一种产品类的实例.调用只需要告诉工厂类所需要的类型,工厂类就会返回需要的产品类工厂的子类. 可以说是工厂模式中最简单的一种. 打个比方,我们在电脑经常玩游戏,我们只需要告诉电脑我们要玩什么游戏,电脑就会打开这个游戏,我们并不需要关心游戏是

设计模式之二 工厂模式

工厂模式的定义: 定义一个用于创建对象的接口,让子类决定实例化哪一个类.工厂方法决定一个类的实例化延迟到其子类. 类图如下: 通用的代码如下: //抽象产品类 public abstract class Product { // 产品通用的方法..... public void method1(){ } //抽象方法 public abstract void method2(); } //--------------------------------------产品类-------------

C#设计模式之十二代理模式(Proxy Pattern)【结构型】

原文:C#设计模式之十二代理模式(Proxy Pattern)[结构型] 一.引言 今天我们要讲[结构型]设计模式的第七个模式,也是"结构型"设计模式中的最后一个模式,该模式是[代理模式],英文名称是:Proxy Pattern.还是老套路,先从名字上来看看."代理"可以理解为"代替",代替"主人"做一些事情,为什么需要"代理",是因为某些原因(比如:安全方面的原因),不想让"主人"直接

Java经典23种设计模式之结构型模式(二)

接上篇,本文介绍结构型模式里的组合模式.装饰模式.外观模式. 一.组合模式(Composite) 组合模式:将对象组合成树形结构,表示"部分--整体"的层次结构.最终达到单个对象和组合对象的使用具有一致性.单看这句话貌似有点抽象,其实比较简单. 以李云龙的独立团为例,目的要统计赵嘉宇一战共歼灭敌人多少个.最高的级别是团,一个团有若干个营,一个营有若干个排,一个排有若干个战士.(为了简化问题,排下面就不设行政单位了).很自然的,李云龙给营长开会回去给老子统计.营长回去给各个排长开会,赶紧

IOS设计模式之二(门面模式,装饰器模式)

本文原文请见:http://www.raywenderlich.com/46988/ios-design-patterns. 由 @krq_tiger(http://weibo.com/xmuzyq)翻译,如果你发现有什么错误,请与我联系谢谢. 门面(Facade)模式(译者注:facade有些书籍译为门面,有些书籍译为外观,此处译为门面) 门面模式针对复杂的子系统提供了单一的接口,不需要暴漏一些列的类和API给用户,你仅仅暴漏一个简单统一的API. 下面的图解释了这个概念: 这个API的使用者

研磨设计模式解析及python代码实现——(二)外观模式(Facade)

一.外观模式定义 为子系统中的一组接口提供一个一致的界面,使得此子系统更加容易使用. 二.书中python代码实现 1 class AModuleApi: 2 def testA(self): 3 pass 4 class AModuleImpl(AModuleApi): 5 def testA(self): 6 print "Now Call testA in AModule!" 7 class BModuleApi: 8 def testB(self): 9 pass 10 cla

云计算设计模式(二十四)——仆人键模式

云计算设计模式(二十四)——仆人键模式 使用一个令牌或密钥,向客户提供受限制的直接访问特定的资源或服务,以便由应用程序代码卸载数据传输操作.这个模式是在使用云托管的存储系统或队列的应用中特别有用,并且可以最大限度地降低成本,最大限度地提高可扩展性和性能. 背景和问题 客户端程序和网络浏览器经常需要读取和写入文件或数据流,并从一个应用程序的存储空间.通常,应用程序将处理的运动数据,或者通过从存储读取它,并将其传输到客户端,或通过从客户机读取该载流并将其存储在数据存储中.然而,这种方法吸收了宝贵的资

设计模式(二)---工厂方法模式

设计模式(二)---工厂方法模式 工厂方法(Factory Method)模式的意义是定义一个创建产品对象的工厂接口,将实际创建工作推迟到子类当中.核心工厂类不再负责产品的创建,这样核心类成为一个抽象工厂角色,仅负责具体工厂子类必须实现的接口,这样进一步抽象化的好处是使得工厂方法模式可以使系统在不修改具体工厂角色的情况下引进新的产品. 抽象工厂源代码 public interface Creator { /** * 工厂方法 */ public Product factory(); } 抽象产品

设计模式 ( 十二 ) 职责链模式(Chain of Responsibility)(对象行为)

 设计模式(十二)职责链模式(Chain of Responsibility)(对象行为型) 1.概述 你去政府部门求人办事过吗?有时候你会遇到过官员踢球推责,你的问题在我这里能解决就解决.不能解决就推卸给另外个一个部门(对象).至于究竟谁来解决问题呢?政府部门就是为了能够避免屁民的请求与官员之间耦合在一起,让多个(部门)对象都有可能接收请求,将这些(部门)对象连接成一条链,而且沿着这条链传递请求.直到有(部门)对象处理它为止. 样例1:js的事件浮升机制 样例2: 2.问题 假设有多个对象都有