文档章节

java设计模式_适配器模式

王大叔爱编程
 王大叔爱编程
发布于 2013/03/29 14:43
字数 386
阅读 166
收藏 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");
	}
}

© 著作权归作者所有

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

王大叔爱编程

粉丝 35
博文 113
码字总数 63525
作品 0
成都
程序员
从 Java 到 Scala (三): object 的应用

本文由 Captain 发表在 ScalaCool 团队博客。 在上篇 Java 到 Scala 系列中,我想你或多或少在语言特性上对有了一定的掌握,在了解完它酷酷的语言特性——让静态回归常态并能简单运用其衍生出...

ScalaCool
09/10
0
0
20个设计模式和软件设计面试问题

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

LCZ777
2014/08/13
0
0
设计模式知识汇总(附github分享)

写在前面 主要内容 为了更系统的学习设计模式,特地开了这样一个基于Java的设计模式【集中营】,都是笔者在实际工作中用到过或者学习过的一些设计模式的一些提炼或者总检。慢慢地初见规模,也...

landy8530
10/10
0
0
设计模式: Java中的工厂设计模式

原文链接 https://github.com/shellhub/blog/issues/22 前言 工厂设计模式(Factory Design Pattern)属于创建模式之一,工厂设计模式在JDK,Spring,Stuts被广泛使用 当一个类或者接口有多个子类...

shellhub
08/22
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

没有更多内容

加载失败,请刷新页面

加载更多

Snackbar源码分析

目录介绍 1.最简单创造方法 1.1 Snackbar作用 1.2 最简单的创建 1.3 Snackbar消失的几种方式 2.源码分析 2.1 Snackbar的make方法源码分析 2.2 对Snackbar属性进行设置 2.3 Snackbar的show显示...

潇湘剑雨
18分钟前
1
0
分布式作业系统 Elastic-Job-Lite 源码分析 —— 作业数据存储

分布式作业系统 Elastic-Job-Lite 源码分析 —— 作业数据存储 摘要: 原创出处 http://www.iocoder.cn/Elastic-Job/job-storage/ 本文基于 Elastic-Job V2.1.5 版本分享 1. 概述 本文主要分享...

DemonsI
25分钟前
1
0
jmockit demo

1、@Mocked,标识一个指定的class的实例或被测对象的参数被Mock掉。 2、@Capturing,标识一个被Mock的对象,从该对象派生的子类也被Mock了。 3、@Injectable,标识只有一个指定的被测对象的内...

我的老腰啊
38分钟前
1
0
内容换行

用 <textarea>13611112222 这里想换行 13877779999</textarea><textarea>13611112222 13877779999</textarea>...

小黄狗
39分钟前
1
0
学习设计模式——单例模式

1. 认识单例模式 1. 定义:一个类中仅有一个实例,并提供一个访问它的全局访问点。 2. 结构:仅一个Singleton类,其中包含一个static类变量,而类变量的类型就是Singleton类,而且Singleton...

江左煤郎
47分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部