适配器模式
来源:互联网 发布:java shiro盐值加密 编辑:程序博客网 时间:2024/05/02 02:36
适配器模式:将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。
在软件开发中,系统的数据和行为都正确,但是接口不符时,我们应该考虑用适配器,目的是使控制范围之外的一个原有对象与某个接口匹配。适配器模式主要应用于希望复用一些现存的类,但是接口又与复用环境要求不一致的情况。
1、Target类
public class Target{public void Request(){System.out.println("普通请求");}}2、Adaptee类
public class Adaptee{public void specificRequest(){System.out.println("特殊请求");}}3、Adapter类
public class Adapter extends Target{private Adaptee adaptee=new Adaptee();public void Request(){adaptee.specificRequest();}}4、Client客户端类
public class Client{public static void main(String[] args){Target target=new Adapter();target.Request();}}实例一:ccc是中国人,在NBA打中锋,刚开始不懂英文,需要一个中间翻译,这个翻译就是适配器。
1、抽象类Player
public abstract class Player{protected String name;public Player(String name){this.name=name;}public abstract void attack();public abstract void defense();}2、Forwards前锋
public class Forwards extends Player{public Forwards(String name){super(name);// TODO Auto-generated constructor stub}@Overridepublic void attack(){// TODO Auto-generated method stub System.out.println("前锋"+name+"进攻");}@Overridepublic void defense(){// TODO Auto-generated method stub System.out.println("前锋"+name+"防守");}}3、ForeignCenter类
public class ForeignCenter{private String name;public String getName(){return name;}public void setName(String name){this.name = name;}public void 进攻(){// TODO Auto-generated method stub System.out.println("中锋"+name+"进攻");}public void 防守(){// TODO Auto-generated method stub System.out.println("中锋"+name+"防守");}}4、Translator翻译
public class Translator extends Player{private ForeignCenter fc=new ForeignCenter(); public Translator(String name){super(name);fc.setName("ccc");// TODO Auto-generated constructor stub}@Overridepublic void attack(){// TODO Auto-generated method stub fc.进攻();}@Overridepublic void defense(){// TODO Auto-generated method stub fc.防守();}}5、Guards类
public class Guards extends Player{public Guards(String name){super(name);// TODO Auto-generated constructor stub}@Overridepublic void attack(){// TODO Auto-generated method stubSystem.out.println("后卫"+name+"进攻");}@Overridepublic void defense(){// TODO Auto-generated method stubSystem.out.println("后卫"+name+"进攻");}}6、客户端程序
public class Client{public static void main(String[] args){Player a=new Forwards("aaa");a.attack();Player b=new Guards("bbb");b.attack();Player c=new Translator("ccc");c.attack();c.defense();}}
0 0
- 适配器及适配器模式
- 适配器及适配器模式
- 适配器模式(类适配器)
- 适配器模式(默认适配器)
- 适配器模式(对象适配器)
- 适配器模式-类适配器
- 适配器模式-对象适配器
- 适配器模式
- 适配器模式
- 适配器模式
- 适配器模式
- 适配器模式
- 适配器模式
- 适配器模式
- 适配器模式
- 适配器模式
- 适配器模式
- 适配器模式
- VS2008环境下C++调用Python模块函数----一封邮件引发的关机
- EPS
- 剑指offer 面试题25 输出和为某值的路径
- vc++6.0中文档、视图与框架的互相调用
- (原创)实战渗透河北经贸大学
- 适配器模式
- Android 程序打包及签名
- 唐巧的iOS技术博客好文列表
- vs2010打开vs2013工程
- OC存取器的指示符详解
- 基于TCP的Socket通信
- IAR 工程改名
- solr删除全部索引数据
- 通用权限管理设计 之 数据库结构设计