设计模式之适配器模式
来源:互联网 发布:sql创建临时表 编辑:程序博客网 时间:2024/06/05 23:03
适配器模式:将一个类的接口转换成希望的另外一个接口。适配器模式使得原本由于接口不兼容而不能一起工作的那些类可以在一起工作。
生活中的例子就是港版的手机,在大陆用的话不能直接插入到插座中,需要把钢板的充电器加一个适配器,转换成大陆的插座可以插入的样式。
代码如下:
//定义了大陆和香港两个接口interface power_hongkong{ public void hongkong_insert();}interface power_dalu{ public void dalu_insert();}/*hongkong_iphone实现了power_hongkong接口,在这个接口中是实现了接口中的抽象方法*/class hongkong_iphone implements power_hongkong{ private String plug_type = "三头插座"; private boolean flag=false; public void hongkong_insert() { if(!flag){ System.out.println("把香港的"+getPlug_type()+"手机插头插入到大陆的插座中不可用");} else { System.out.println("把香港的"+getPlug_type()+"手机插头插入到大陆的插座中可用");} } public String getPlug_type() { return plug_type; } public void setPlug_type(String plug_type) { this.plug_type = plug_type; } public boolean isFlag() { return flag; } public void setFlag(boolean flag) { this.flag = flag; }}/*dalu_iphone实现了dalu_hongkong接口,在这个接口中是实现了接口中的抽象方法*/class dalu_iphone implements power_dalu{ private String plug_type = "两头插座"; private boolean flag=true; public void dalu_insert() { System.out.println("把大陆手机的"+getPlug_type()+"插入到大陆的插座中可用"); } public String getPlug_type() { return plug_type; } public void setPlug_type(String plug_type) { this.plug_type = plug_type; } public boolean isFlag() { return flag; } public void setFlag(boolean flag) { this.flag = flag; }}
接下来是代码的核心部分,假如某个方法的参数只是接口1,其他的接口2也想实现这个方法,方法如下。用一个类A实现接口1,同时在类A中对接口2类进行申明,在类A中实现接口1的方法中调用接口2中的方法,就是做一个转换。
class dalu_adpter implements power_dalu{ hongkong_iphone hk =new hongkong_iphone(); public dalu_adpter(hongkong_iphone hk){ this.hk=hk; } public void dalu_insert() { //在接口1中掉用接口2中的抽象方法 hk.setFlag(true); hk.hongkong_insert(); }}public class adaper{ public static void main(String[] args) { dalu_iphone d =new dalu_iphone(); hongkong_iphone hk =new hongkong_iphone(); connect_dalu(d); dalu_adpter dalu_adpter =new dalu_adpter(hk); connect_dalu(dalu_adpter); } //适配器模式的需求,假如当前方法的参数只能是接口1 public static void connect_dalu(power_dalu d){ d.dalu_insert(); }}
0 0
- 设计模式之适配器
- 设计模式之适配器
- 设计模式之适配器
- 设计模式之适配器
- 设计模式 之 适配器
- 设计模式 之 适配器
- 设计模式之适配器
- 设计模式之适配器
- 设计模式之适配器
- 设计模式之适配器
- 设计模式之适配器
- 设计模式 之 适配器模式
- 设计模式之适配器模式
- 设计模式之适配器模式
- 设计模式之适配器模式
- 设计模式之适配器模式
- 设计模式之适配器模式
- 设计模式之--适配器模式.
- OC学习_5_关于NSString和单例
- 20151216 OCP 047 100-120meta character syntaxes and the
- 错误1error C2062: 意外的类型“float”龙书\13075875\part ii code\chapter 8
- 安卓判断是否安装了某软件
- ubuntu下安装VNC远程桌面的详细步骤
- 设计模式之适配器模式
- PO VO DTO BO区别及用法
- 轻松学习JavaScript十九:DOM编程学习之在HTML文档什么位置编写JS代码
- 【Linux】对比直接编译进内核和模块形式
- SpannableString、ClickableSpan
- thinkphp3.2.3 相关
- logback 配置
- Labwindows/CVI程序调用C#生成的Dll文件
- Lua学习笔记(3) : 在C++中调用Lua函數