将一个类的接口,转换成客户期待的另一个接口。适配器让原本接口不兼容的类可以合作无间。
package pattern;
interface Turkey {
public void gobble();
public void fly();
}
class WildTurkey implements Turkey{
public WildTurkey(){}
public void gobble(){
System.out.println("Gobble gobble");
}
public void fly(){
System.out.println("i am flying a short distance");
}
}
interface DuckInterface{
public void quack();
public void fly();
}
class MallardDuckinterface implements DuckInterface{
public MallardDuckinterface(){}
public void quack(){
System.out.println("quack");
}
public void fly(){
System.out.println("i am fly");
}
}
class TurkeyAdapter implements DuckInterface{
Turkey turkey;
public TurkeyAdapter(Turkey turkey){
turkey=turkey;
}
public void quack(){
turkey.gobble();
}
public void fly(){
for(int i=0;i<5;i++){
turkey.fly();
}
}
}
class DuckAdapter implements Turkey{
DuckInterface duckInterface;
public void DuckAdapter(DuckInterface duckInterface){
duckInterface=duckInterface;
}
public void gobble(){
duckInterface.quack();
}
public void fly(){
duckInterface.fly();
}
}
package pattern;
public class DuckTestDrive {
public static void main(String[] args) {
DuckInterface duck=new MallardDuckinterface();
WildTurkey turkey= new WildTurkey();
DuckInterface turkeyAdapter=new TurkeyAdapter(turkey);
System.out.println("The Turkey says...");
turkey.gobble();
turkey.fly();
System.out.println("\n The Duck says...");
testDuck(duck);
System.out.println("\n The TurkeyAdapter says...");
//testDuck(turkeyAdapter);
turkeyAdapter.quack();
}
static void testDuck(DuckInterface duck){
duck.quack();
duck.fly();
}
}
分享到:
相关推荐
良葛格的《Design Pattern学习笔记》不仅涵盖了经典的GOF设计模式,还额外介绍了几种多线程模式,这使得这份学习笔记成为了一个宝贵的学习资源。下面将对其中的部分设计模式进行详细介绍。 #### 二、GOF设计模式 ...
Android源码设计模式解析与实战读书笔记源代码 说明: 包名factorypattern.normal表示的是工厂方法模式的普通用法 包名factorypattern.practices表示的是工厂方法模式的常用 包名observerpattern表示的是观察者模式...
8. **适配器模式(Adapter)**:将一个类的接口转换成客户希望的另一个接口。适配器使原本接口不兼容的类可以一起工作。 9. **桥接模式(Bridge)**:将抽象部分与实现部分分离,使它们可以独立变化。这种模式可以...
1. 适配器模式(Adapter Pattern):允许将一个类的接口转换成客户期望的另一个接口。 2. 代理模式(Proxy Pattern):为其他对象提供一种代理以控制对这个对象的访问。 3. 桥接模式(Bridge Pattern):将抽象部分...
适配器模式(Adapter Pattern)是作为两个不兼容的接口之间的桥梁。这种类型的设计模式属于结构型模式,它结合了两个独立接口的功能。 这种模式涉及到一个单一的类,该类负责加入独立的或不兼容的接口功能。举个...
源码可能包含`AdapterPattern.java`,笔记则会讲解如何实现接口转换。 7. **建造者模式**:将复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。`BuilderPattern.java`可能是示例代码,笔记会...
- 适配器模式(Adapter):使两个不兼容的接口能够协同工作。 - 桥接模式(Bridge):将抽象部分与实现部分分离,使它们可以独立变化。 - 组合模式(Composite):将对象组合成树形结构以表示“部分-整体”的层次...
#### 适配器模式(Adapter Pattern) 适配器模式也是一种结构型设计模式,其目的是让两个不兼容的接口能够一起工作。它通过创建一个新的类来包装现有的类,从而使得原本由于接口不兼容而不能一起工作的类可以协同...
适配器模式(Adapter Pattern)是作为两个不兼容的接口之间的桥梁。这种类型的设计模式属于结构型模式,它结合了两个独立接口的功能。 这种模式涉及到一个单一的类,该类负责加入独立的或不兼容的接口功能。举个...
### 设计模式笔记总结 本篇文章是对一份设计模式学习资料的深入解读,这份资料包含了19种经典的设计模式,并提供了C#示例代码,适用于学习和复习。下面将逐一介绍这些设计模式及其核心概念。 #### 1. 简单工厂模式...
谷歌师兄的leetcode刷题笔记 请叫我大师兄 Java Note Project 项目结构目录 bean 统一存放一些测试使用的model的bean,enum... 设计模式 简要说明 设计模式是一套被反复使用的、多数人知晓的、经过分类编目的、代码...
1. **适配器模式(Adapter Pattern)**:GooseAdapter.java文件表明,文章中可能讨论了适配器模式,这种模式允许不兼容的接口之间进行通信。适配器模式通过创建一个新的类,该类将原始类的接口转换为期望的接口,...
设计模式是软件工程中的一种最佳实践,它是在特定情境下解决常见问题的经验总结。...在DesignPattern-master这个压缩包中,你可以找到关于这些模式的详细讲解和实例代码,为你的Java开发之旅提供宝贵的参考资料。
这篇课堂笔记涵盖了UML、Spring Boot以及设计模式等多个方面的重要概念。 首先,UML(统一建模语言)是软件开发中用于可视化、规格说明、构建和文档化的标准方法。在UML类图中,我们关注的主要关系有依赖、关联、...
### 23种设计模式学习笔记 #### 一、软件设计模式的概念与意义 **概念:** 软件设计模式(Software Design Pattern),又称设计模式,是一套被广泛采用、经过整理和分类的代码设计经验总结。它针对软件设计过程中...
本笔记主要关注的是如何有效地学习和运用设计模式。 首先,我们需要了解设计模式的基本分类。设计模式通常被分为三大类:创建型模式(Creational Patterns)、结构型模式(Structural Patterns)和行为型模式...