`
songzhan
  • 浏览: 240561 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

4月16号 -- 适配器模式

阅读更多

今天的任务:学习“适配器模式”

一、适配器(变压器)模式:

           把一个类的接口变换成客户端所期待的另一种接口,从而使原本因接口原因不匹配而无法一起工作的两个类能够一起工作。

      适配器模式分类:1、类的适配器模式(采用继承实现)2、对象适配器(采用对象组合方式实现)

 1、类的适配器模式:

/**
* 源,只有一个方法
*/

public void run(){
   System.out.println("跑");
}

 

/**
*目标接口
*/

public interface ITarget(){
    //定义两个方法
    void run();
    void fly();
}

  

/**
*继承源类,然后实现目标接口,从而实现类到接口的适配
*/

public class Adapter excends Sources implements ITarget{
     //实现源类没有的方法
      public vpid fly(){
            System.out.println("飞");
      }
}

 

public class Test {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		ITarget target = new Adapter();
		target .run();
		target .fly();
	}

 输出结果

 :跑

    飞

从输出的结果可以看出,这就是适配器模式的作用

 

2、对象适配器

/**
 * 源对象,只有跑的功能
 * */
public class Animal {
	public void run(){
		System.out.println("跑");
	}
}

 

/**
 * 目标接口,即能跑,又能飞
 * */
public interface ITarget {
	void run();
	void fly();
}

 

/**
 * 通过构造函数引入源对象,并实现了目标的方法
 * */
public class Adapter implements ITarget{
	
	private Animal animal;
	//private animal animal2...可以适配多个对象
	public Adapter(Animal animal){
		this.animal = animal;
	}
	/**
	 * 拓展几口要求的新方法
	 * */
	public void fly(){
		System.out.println("飞");
	}
	
	/**
	 * 使用源对象的方法
	 * */
	public void run(){
		this.animal.run();
	}

 

public class Test {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		ITarget itarget = new Adapter(new Animal());
		itarget.run();
		itarget.fly();
		
	}

}

 

      

分享到:
评论

相关推荐

    门禁管理系统设计方案.doc

    水 上 华 城 门 禁 管 理 系 统 设计方案 北京捷顺南亿科技有限公司 2010年10月17日 目 录 1、总则 2 2、所遵循的标准和质量保证 3 3、系统设计原则 4 4、系统组成 4 5、系统使用的卡 5 6、系统工作流程 6 7、主要...

    Sysinternals 微软系统监控实用工具

    v4.76(2008 年 10 月 16 日) Sysinternals 的另一个优先程序:此程序截取设备驱动程序对 DbgPrint 的调用和 Win32 程序生成的 OutputDebugString。它允许在不使用活动的调试器的情况下,在本地计算机上或通过 ...

    《精通Linux 设备驱动程序开发》.(Sreekrishnan).pdf

    出版日期:2010 年6月 页码:468 内容简介  本书是linux设备驱动程序开发领域的权威著作。全书基于2.6内核,不仅透彻讲解了基本概念和技术,更深入探讨了其他书没有涵盖或浅尝辄止的许多重要主题和关键难点,如...

    Java范例开发大全 (源程序)

     实例160 汽车适配器(Adapter适配器模式) 248  8.4 垃圾回收 250  实例161 垃圾回收的机制 250  第9章 面向对象的四大特征(教学视频:65分钟) 252  9.1 抽象 252  实例162 求自定义几何图形的面积和...

    java范例开发大全(pdf&源码)

    实例160 汽车适配器(Adapter适配器模式) 248 8.4 垃圾回收 250 实例161 垃圾回收的机制 250 第9章 面向对象的四大特征(教学视频:65分钟) 252 9.1 抽象 252 实例162 求自定义几何图形的面积和周长 252 实例163 ...

    java范例开发大全源代码

     实例160 汽车适配器(Adapter适配器模式) 248  8.4 垃圾回收 250  实例161 垃圾回收的机制 250  第9章 面向对象的四大特征(教学视频:65分钟) 252  9.1 抽象 252  实例162 求自定义几何图形的...

    java范例开发大全

    实例160 汽车适配器(Adapter适配器模式) 248 8.4 垃圾回收 250 实例161 垃圾回收的机制 250 第9章 面向对象的四大特征(教学视频:65分钟) 252 9.1 抽象 252 实例162 求自定义几何图形的面积和周长 252 实例163 ...

    Java范例开发大全(全书源程序)

    实例160 汽车适配器(Adapter适配器模式) 248 8.4 垃圾回收 250 实例161 垃圾回收的机制 250 第9章 面向对象的四大特征(教学视频:65分钟) 252 9.1 抽象 252 实例162 求自定义几何图形的面积和周长 252 ...

    Java开发实战1200例(第1卷).(清华出版.李钟尉.陈丹丹).part3

    实例118 适配器模式的简单应用 149 实例119 普通内部类的简单应用 151 实例120 局部内部类的简单应用 152 实例121 匿名内部类的简单应用 153 实例122 静态内部类的简单应用 154 第2篇 Java高级应用 第6章 多线程技术...

    编写设备驱动程序

    编写设备驱动程序》提供有关为面向字符的设备、面向块的设备、网络设备、SCSI目标和HBA设备以及USB设备开发SolarisolarisOperatingSystem,SolarisOS)驱动程序的信息。本书讨论了如何为符合SolarisOSDDI/DKI(Device...

Global site tag (gtag.js) - Google Analytics