文档章节

java设计模式_适配器模式

王大叔爱编程
 王大叔爱编程
发布于 2013/03/29 14:43
字数 386
阅读 165
收藏 1

新手+菜鸟,入门设计模式,有什么不对的地方,请各位灌水。我表示灰常欢迎。废话少说,上代码。

一,类适配器

package com.wangbiao.test;


/**
 * 适配器模式,类适配器和对象适配器,适配器,将已经存在的东西转换为我们能用的东西,USB接口就是一个适配器
 * 已经存在一个特殊的功能,但是我的接口和实现类没有那个功能,并且我不想改变我的接口和实现类,可以采用适配器模式
 * 2013/03/29
 * @author WangBiao
 *
 */
public class ClassAdapter {

	
	public static void main(String[] args) {
		
		Target target=new Adapter();
		target.data_transfer();
		
	}
}


class Adaptee{
	
	public void charge(){
		System.out.println("I can charge for electric device");
	}
}

class Adapter extends Adaptee implements Target{
	
	public void data_transfer(){
		super.charge();
	}
}

interface Target{
	public void data_transfer();
	
}

class CommonFunction implements Target{
	public void data_transfer(){
		System.out.println("transfer data is ok");
	}
}

二,对象适配器

package com.wangbiao.test;

/**
 * 适配器模式,类适配器和对象适配器,适配器,将已经存在的东西转换为我们能用的东西,USB接口就是一个适配器
 * 已经存在一个特殊的功能,但是我的接口和实现类没有那个功能,并且我不想改变我的接口和实现类,可以采用适配器模式
 * 2013/03/29
 * @author WangBiao
 *
 */
public class ObjectAdapter {

	
	public static void main(String[] args) {
		
		Target_second target= new Adapter_second(new Adaptee_second());
		target.data_transfer();
	}
}

class Adaptee_second{
	
	public void charge(){
		System.out.println("I can charge for electric device");
	}
}

class Adapter_second implements Target_second{
	
	private Adaptee_second adaptee;
	public Adapter_second(Adaptee_second adaptee) {
		// TODO Auto-generated constructor stub
		this.adaptee=adaptee;
	}
	@Override
	public void data_transfer() {
		this.adaptee.charge();
	}
	
}

interface Target_second{
	public void data_transfer();
	
}

class CommonFunction_second implements Target_second{
	public void data_transfer(){
		System.out.println("transfer data is ok");
	}
}

© 著作权归作者所有

共有 人打赏支持
王大叔爱编程

王大叔爱编程

粉丝 33
博文 113
码字总数 63525
作品 0
成都
程序员
20个设计模式和软件设计面试问题

不管是参加Java面试还是C#面试,设计模式和软件设计都是任何编程面试中的必问问题。实际上,编程能力和设计技巧是对彼此很好的补充。一个好的程序员通常都是一个好的软件设计人员。他们知道怎...

LCZ777
2014/08/13
0
0
设计模式 2014-12-19

book: 阎宏《JAVA与模式》 架构设计栏目 http://blog.csdn.net/enterprise/column.html 概要: http://bbs.csdn.net/forums/Embeddeddriver 23种设计模式分别是: 1.单例模式 2.工厂方法模式...

jayronwang
2014/12/19
0
0
设计模式15——Template Method设计模式

Template Method模板方法设计模式定义一个操作中算法的骨架,将具体步骤的执行延迟到子类中实现。Java中的抽象类就是使用了模板方法设计模式。模板方法设计模式结构如下: 以文档处理为例,T...

小米米儿小
2014/01/24
0
0
简单工厂、工厂方法、抽象工厂、策略模式、策略与工厂的区别

转载:原地址http://www.cnblogs.com/zhangchenliang/p/3700820.html 简单工厂、工厂方法、抽象工厂、策略模式、策略与工厂的区别 结合简单示例和UML图,讲解工厂模式简单原理。 一、引子 话说...

法斗斗
05/08
0
0
设计模式3——Proxy设计模式

Proxy代理设计模式是一种控制对象访问的设计模式,类似于网络代理,网络代理机制如下图: Proxy代理设计模式机制如下: 代理模式UML图如下: 代理模式顺序图如下: 客户端程序通过代理程序来...

小米米儿小
2013/12/06
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Minifilter的动态安装、加载及卸载

MINIFILTER框架的文件系统过滤驱动,无法使用的CreateService和OpenService进行动态加载。 看了一下,使用Inf文件安装Minifilter驱动的方式是在注册表驱动服务项下比传统驱动多创建了Instanc...

simpower
28分钟前
3
0
idea新建springCloud项目(6)- Config Server使用

1.在IDEA新建springCloud项目-Config Server 修改版本,和之前建的eureka项目版本一致,修改完记得刷新: 删除掉不需要的文件: 2.把Config S 服务注册到eureka上去,配置git地址,启动项目 ...

monroeCode
34分钟前
4
0
大数据可视化项目开发总纲

第1章 开发文档总纲 1.1 开发工具清单 名称 版本 备注 Pentaho-bi server pentaho-server-ce-7.1 Pentaho Cde为其内置工具 Pentaho-prd pentaho-prd-ce-7.1 Pentaho Report Designer报表工具...

ZhangLG
34分钟前
4
0
pip安装超时问题

pip3 install --default-timeout=100 tensorflow 设置为100秒 参考: User Guide How to solve ReadTimeoutError: HTTPSConnectionPool(host='pypi.python.org', port=443) with pip?......

亚林瓜子
36分钟前
2
0
fragment 旋转时保持当前实例

设备旋转时保存Fragment的交互状态: setRetainInstance(true);

zdglf
38分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部