适配器模式将一个类的接口,转换成客户期望的另一个接口。适配器让原本接口不兼容的类可以合作无间。涉及到得OO原则:使用对象组合,以修改的接口包装被适配者。
public interface Duck {
public void quack();
public void fly();
}
public interface Turkey {
public void gobble();
public void fly();
}
public class WildTurkey implements Turkey {
public void gobble() {
System.out.println("Gobble gobble");
}
public void fly() {
System.out.println("I'm flying a short distance");
}
}
public class TurkeyAdapter implements Duck {
Turkey turkey;
public TurkeyAdapter(Turkey turkey) {
this.turkey = turkey;
}
public void quack() {
turkey.gobble();
}
public void fly() {
for(int i=0; i < 5; i++) {
turkey.fly();
}
}
}
public class MallardDuck implements Duck {
public void quack() {
System.out.println("Quack");
}
public void fly() {
System.out.println("I'm flying");
}
}
public class DuckTestDrive {
public static void main(String[] args) {
MallardDuck duck = new MallardDuck();
WildTurkey turkey = new WildTurkey();
Duck turkeyAdapter = new TurkeyAdapter(turkey);
System.out.println("The Turkey says...");
turkey.gobble();
turkey.fly();
System.out.println("\nThe Duck says...");
testDuck(duck);
System.out.println("\nThe TurkeyAdapter says...");
testDuck(turkeyAdapter);
}
static void testDuck(Duck duck) {
duck.quack();
duck.fly();
}
}
上面的例子为适配器模式,外观模式与适配器模式类似,但是外观模式是提供一个统一的接口,用来访问子系统中的一群接口。外观定义了一个高层接口,让子系统更容易使用。简单来说,外观模式就是将很多动作封装在一个方法里面,而不是像适配器模式一样,只封装了一个动作。
分享到:
相关推荐
在软件设计领域,设计模式是一种经过时间和实践验证的解决方案,用于解决常见的...这个"设计模式之适配器模式与外观模式demo"资源为学习和实践这两种模式提供了宝贵的实例,对于提升编程技能和设计思维具有积极意义。
### 深入浅出设计模式之适配器模式与外观模式 在软件工程领域,设计模式被广泛地应用于解决常见的编程问题。其中,《Head First 设计模式》是一本非常受欢迎的经典著作,它通过生动有趣的例子帮助读者理解并掌握...
基于Java实现的23种设计模式Demo,抽象工厂模式、建造模式、工厂方法模式、原型模式、单例模式、外观模式、适配器模式等 Java设计模式共有23种,分别为:抽象工厂模式、建造模式、工厂方法模式、原型模式、单例模式...
适配器模式是一种结构型设计模式,主要解决的是不同接口之间不兼容的问题,使得原本由于接口不匹配而无法协作的类能够协同工作。适配器模式分为类适配器和对象适配器两种形式。 在类适配器模式中,适配器类直接继承...
综上所述,适配器模式、组合模式和外观模式在Java设计模式中具有重要的作用。适配器模式解决了接口不兼容的问题,允许不同系统的组件协同工作;组合模式将对象组合成树形结构,以表示部分-整体的关系,使得客户端...
### 实验7 适配器模式、外观模式与模板方法模式 #### 一、适配器模式 **适配器模式(Adapter Pattern)** 是一种结构型设计模式,它允许不兼容的接口之间能够协同工作。适配器模式的主要作用是通过创建一个新的...
例如,适配器模式可以用于将不兼容的接口转换为可协作的形式,而装饰者模式则允许在运行时动态地添加或修改对象的功能。通过深入理解和实践这些模式,开发者能够编写出更具扩展性和灵活性的软件系统。 总的来说,这...
设计模式之Facade(外观) 设计模式之Proxy(代理) 设计模式之Adapter(适配器) 设计模式之Composite(组合) 设计模式之Decorator(油漆工) 设计模式之Bridge 设计模式之Flyweight(享元) 行为模式: 设计模式之Template ...
2. 结构型模式:如适配器模式、装饰器模式、代理模式、桥接模式、组合模式、外观模式和享元模式。这些模式关注的是如何将类或对象结合在一起形成更大的结构,同时保持它们之间的松耦合。 3. 行为型模式:如策略模式...
Java设计模式中的适配器模式和外观模式是两种在软件设计中经常使用的结构型模式,它们主要用于解决不同接口间的兼容性和复杂系统简化的问题。 适配器模式的核心思想是通过一个中间层(适配器)来使得原本接口不兼容...
适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。 行为型模式(11): 策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、...
2.结构型模式:适配器模式、桥接模式、装饰模式、组合模式、外观模式、享元模式、代理模式。 4.行为型模式:模板方法模式、命令模式、迭代器模式、观察者模式、中介者模式、备忘录模式、解释器模式、状态模式、策略...
《Java设计模式之禅》是一本深入浅出讲解设计模式的书籍,书中不仅包含23种经典设计模式的案例,还详细介绍了设计模式背后的思想和原则,适合初学者以及对设计模式有一定了解的程序员阅读。本书旨在帮助读者理解如何...
其中包括代理模式(Proxy)、装饰器模式(Decorator)、适配器模式(Adapter)、桥接模式(Bridge)、组合模式(Composite)、外观模式(Facade)和享元模式(Flyweight)。这些模式帮助我们在不修改原有代码的情况...
设计模式之Facade(外观) 设计模式之Proxy(代理) 设计模式之Adapter(适配器) 设计模式之Composite(组合) 设计模式之Decorator(油漆工) 设计模式之Bridge 设计模式之Flyweight(享元) 行为模式: 设计模式之Template ...
适配器模式(Adapter Pattern):将一个类的接口转换为另一个类的接口,以便于不同类之间的通信和合作。 外观模式(Facade Pattern):提供了一个统一的接口,以便于访问和操作子系统中的多个接口。 行为型软件设计...
这份文档以例子的形式,讲诉了适配器和外观模式,希望可以帮到学习设计模式的人!
内容包括统一建模语言基础知识、面向对象设计原则、设计模式概述、简单工厂模式、工厂方法模式、抽象工厂模式、建造者模式、原型模式、单例模式、适配器模式、桥接模式、组合模式、装饰模式、外观模式、享元模式、...
设计模式09-外观模式、享元模式 设计模式10-代理模式、结构型模式大复习 设计模式11-行为模式-责任链、命令模式 设计模式12-解释器模式 设计模式13-迭代器模式 设计模式14-中介者模式、备忘录模式 设计模式15-观察者...
适配器模式与外观模式是两种常见的设计模式,它们都能够对已有的系统接口进行改进,以提高系统的可用性、灵活性以及可维护性。 首先,让我们来深入了解Facade模式。Facade模式(外观模式)的意图是提供一个统一的...