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

Adapter patten 读书笔记

阅读更多
将一个类的接口,转换成客户期待的另一个接口。适配器让原本接口不兼容的类可以合作无间。

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();
 }
}
分享到:
评论

相关推荐

    良葛格DesignPattern学习笔记

    良葛格的《Design Pattern学习笔记》不仅涵盖了经典的GOF设计模式,还额外介绍了几种多线程模式,这使得这份学习笔记成为了一个宝贵的学习资源。下面将对其中的部分设计模式进行详细介绍。 #### 二、GOF设计模式 ...

    java源码解读-DesignPattern:Android源码设计模式解析与实战读书笔记源代码

    Android源码设计模式解析与实战读书笔记源代码 说明: 包名factorypattern.normal表示的是工厂方法模式的普通用法 包名factorypattern.practices表示的是工厂方法模式的常用 包名observerpattern表示的是观察者模式...

    Gof design pattern 中文/英文版+web+学习笔记

    8. **适配器模式(Adapter)**:将一个类的接口转换成客户希望的另一个接口。适配器使原本接口不兼容的类可以一起工作。 9. **桥接模式(Bridge)**:将抽象部分与实现部分分离,使它们可以独立变化。这种模式可以...

    300Java设计模式部分学习笔记

    1. 适配器模式(Adapter Pattern):允许将一个类的接口转换成客户期望的另一个接口。 2. 代理模式(Proxy Pattern):为其他对象提供一种代理以控制对这个对象的访问。 3. 桥接模式(Bridge Pattern):将抽象部分...

    适配器模式

    适配器模式(Adapter Pattern)是作为两个不兼容的接口之间的桥梁。这种类型的设计模式属于结构型模式,它结合了两个独立接口的功能。 这种模式涉及到一个单一的类,该类负责加入独立的或不兼容的接口功能。举个...

    java设计模式源码和笔记(第一部分)

    源码可能包含`AdapterPattern.java`,笔记则会讲解如何实现接口转换。 7. **建造者模式**:将复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。`BuilderPattern.java`可能是示例代码,笔记会...

    设计模式整理代码-pattern.zip

    - 适配器模式(Adapter):使两个不兼容的接口能够协同工作。 - 桥接模式(Bridge):将抽象部分与实现部分分离,使它们可以独立变化。 - 组合模式(Composite):将对象组合成树形结构以表示“部分-整体”的层次...

    JAVA上课笔记class_10

    #### 适配器模式(Adapter Pattern) 适配器模式也是一种结构型设计模式,其目的是让两个不兼容的接口能够一起工作。它通过创建一个新的类来包装现有的类,从而使得原本由于接口不兼容而不能一起工作的类可以协同...

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

    适配器模式(Adapter Pattern)是作为两个不兼容的接口之间的桥梁。这种类型的设计模式属于结构型模式,它结合了两个独立接口的功能。 这种模式涉及到一个单一的类,该类负责加入独立的或不兼容的接口功能。举个...

    设计模式笔记总结 含C#示例代码 复习好帮手

    ### 设计模式笔记总结 本篇文章是对一份设计模式学习资料的深入解读,这份资料包含了19种经典的设计模式,并提供了C#示例代码,适用于学习和复习。下面将逐一介绍这些设计模式及其核心概念。 #### 1. 简单工厂模式...

    谷歌师兄的leetcode刷题笔记-JavaNote:javaesguavajdkjdk8jsonlombokmdthreadjvmsprin

    谷歌师兄的leetcode刷题笔记 请叫我大师兄 Java Note Project 项目结构目录 bean 统一存放一些测试使用的model的bean,enum... 设计模式 简要说明 设计模式是一套被反复使用的、多数人知晓的、经过分类编目的、代码...

    Head First 设计模式学习笔记(十四)模式的组合使用

    1. **适配器模式(Adapter Pattern)**:GooseAdapter.java文件表明,文章中可能讨论了适配器模式,这种模式允许不兼容的接口之间进行通信。适配器模式通过创建一个新的类,该类将原始类的接口转换为期望的接口,...

    DesignPattern:设计模式的学习笔记和示例代码

    设计模式是软件工程中的一种最佳实践,它是在特定情境下解决常见问题的经验总结。...在DesignPattern-master这个压缩包中,你可以找到关于这些模式的详细讲解和实例代码,为你的Java开发之旅提供宝贵的参考资料。

    软件体系结构与设计模式课堂笔记.docx

    这篇课堂笔记涵盖了UML、Spring Boot以及设计模式等多个方面的重要概念。 首先,UML(统一建模语言)是软件开发中用于可视化、规格说明、构建和文档化的标准方法。在UML类图中,我们关注的主要关系有依赖、关联、...

    23中设计模式学习笔记.docx

    ### 23种设计模式学习笔记 #### 一、软件设计模式的概念与意义 **概念:** 软件设计模式(Software Design Pattern),又称设计模式,是一套被广泛采用、经过整理和分类的代码设计经验总结。它针对软件设计过程中...

    design-pattern-notes:关于学习设计模式的注意事项

    本笔记主要关注的是如何有效地学习和运用设计模式。 首先,我们需要了解设计模式的基本分类。设计模式通常被分为三大类:创建型模式(Creational Patterns)、结构型模式(Structural Patterns)和行为型模式...

Global site tag (gtag.js) - Google Analytics