Adapter适配器模式
来源:互联网 发布:淘宝大促时间表2017 编辑:程序博客网 时间:2024/06/03 19:46
应用场景
在程序世界里面,经常会有现有的程序无法直接使用,需要做适当的转换之后才可以使用的情况。而适配器模式就是这种填补差异的设计模式。Adapter同时也被称为Wrapper模式,Wrapper就有包装器的意思。使用精美的包装纸将商品包装成礼物。
- 类适配器模式
Banner类 具体实现了怎么转换 ,目的就是让字符串输出
public class Banner { private String string; public Banner(String string) { this.string=string; } /** * 显示带括号 */ public void showWithParen(){ System.out.println("( "+this.string+" )"); } /** *显示带星号 */ public void showWithAster(){ System.out.println("* "+this.string+" *"); }}
Print接口 一个打印的接口
public interface Print { public abstract void printParen(); public abstract void printAster();}
PrintBanner类 真正实现了适配器功能的类
public class PrintBanner extends Banner implements Print { public PrintBanner(String string) { super(string); } @Override public void printParen() { showWithParen(); } @Override public void printAster() { showWithAster(); }}
APP
main类并不知道 PrintBanner 类是如何实现这种输出的,这样就可以在不用对Main类进行修改的情况下通过改变 PrintBanner 的具体实现来改变程序的输出结果
public class Main { public static void main(String[] args) { Print print = new PrintBanner("你好"); print.printAster(); print.printParen(); }}
- 对象适配器
Banner类跟上述类一样
下面是Print类 上文把这个声明为一个接口,这里把它写成一个抽象类
public abstract class Print { public abstract void printParen(); public abstract void printAster();}
PrintBanner 继承了抽象类,并且创建了Banner的对象,调用了Banner的方法
public class PrintBanner extends Print { private Banner banner; @Override public void printParen() { banner.showWithParen(); } @Override public void printAster() { banner.showWithAster(); }}
这个app与上文一样。
- 什么时候使用Adapter
很多时候我们写程序,并不是从零开始写,而是有一些很多 经过过反复测试的类提供给我们自己用。Adapter模式会对现有的类进行适配生成新的类。通过这种模式来创建适合我们自己项目的类,如果出现问题,我们就可以很明确的知道错误在哪!
0 0
- Adapter模式 适配器模式
- 适配器模式(Adapter)
- 适配器模式(Adapter)
- 适配器(Adapter)模式
- 适配器模式(Adapter Pattern)
- ADAPTER(适配器)模式
- 适配器模式(adapter)
- Adapter适配器模式
- 适配器(Adapter)模式
- 适配器模式(Adapter Pattern)
- Adapter(适配器)模式
- 适配器模式(adapter)
- 适配器模式(Adapter)
- 适配器模式(Adapter)
- 适配器模式(Adapter)
- 适配器模式 Adapter Pattern
- Adapter 适配器模式
- 适配器模式(Adapter)
- [UML]总结
- 华为LiteOS发布了
- 启动nginx服务unknown directive "rtmp"
- [SDOI2008]仪仗队 欧拉函数
- Android在线视频的记忆播放
- Adapter适配器模式
- poj 2007 Scrambled Polygon (极角序)
- public String toString() {}方法
- 第二节 封装通信接口方法
- 【Java基础】四种Java引用类型
- oracle 函数
- 即时通讯监听消息同事对UI操作
- Android SDK 安装太慢
- 阿里的Java程序员都在干嘛