适配器模式(Adapter):类适配器、对象适配器
来源:互联网 发布:iphone手机编程软件 编辑:程序博客网 时间:2024/06/05 14:08
转自http://haolloyin.blog.51cto.com/1177454/346128
// 已存在的、具有特殊功能、但不符合我们既有的标准接口的类class Adaptee {public void specificRequest() {System.out.println("被适配类具有 特殊功能...");}}
// 目标接口,或称为标准接口interface Target {public void request();}// 具体目标类,只提供普通功能class ConcreteTarget implements Target {public void request() {System.out.println("普通类 具有 普通功能...");}}
// 适配器类,继承了被适配类,同时实现标准接口class Adapter extends Adaptee implements Target{public void request() {super.specificRequest();}}
// 测试类public class Client {public static void main(String[] args) {// 使用普通功能类Target concreteTarget = new ConcreteTarget();concreteTarget.request();// 使用特殊功能类,即适配类Target adapter = new Adapter();adapter.request();}}
普通类 具有 普通功能...被适配类具有 特殊功能...
// 适配器类,直接关联被适配类,同时实现标准接口class Adapter implements Target{// 直接关联被适配类private Adaptee adaptee;// 可以通过构造函数传入具体需要适配的被适配类对象public Adapter (Adaptee adaptee) {this.adaptee = adaptee;}public void request() {// 这里是使用委托的方式完成特殊功能this.adaptee.specificRequest();}}
// 测试类public class Client {public static void main(String[] args) {// 使用普通功能类Target concreteTarget = new ConcreteTarget();concreteTarget.request();// 使用特殊功能类,即适配类,// 需要先创建一个被适配类的对象作为参数Target adapter = new Adapter(new Adaptee());adapter.request();}}
0 0
- 适配器(adapter)模式--类适配器和对象适配器
- 适配器模式(Adapter):类适配器、对象适配器
- 适配器模式(Adapter):类适配器、对象适配器
- 适配器模式(Adapter):类适配器、对象适配器
- 适配器模式(Adapter):类适配器、对象适配器
- 适配器模式(Adapter):类适配器、对象适配器
- 适配器模式(Adapter):类适配器、对象适配器
- 适配器模式(Adapter):类适配器、对象适配器
- 适配器模式(Adapter):类适配器、对象适配器
- 适配器模式(Adapter):类适配器、对象适配器
- 适配器模式(Adapter):类适配器、对象适配器
- 适配器模式(Adapter):类适配器、对象适配器
- 适配器模式(Adapter):类适配器、对象适配器
- JAVA设计模式-适配器(类适配器、对象适配器)模式-Adapter
- 7种结构型模式之:适配器模式(Adapter):类适配器、对象适配器
- 设计模式之适配器模式(Adapter):类适配器、对象适配器
- [设计模式](五):适配器模式(Adapter)[类适配器、对象适配器、接口适配器]
- 适配器模式:类适配器和对象适配器
- [HPU] LianLianKan [STL&stack]
- maven远程仓库更新后idea点刷新按钮或重新导入项目仍获取不到远程更新
- 各种最优化方法比较
- No10-Regular Expression Matching
- 堆和栈的区别(转过无数次的文章)
- 适配器模式(Adapter):类适配器、对象适配器
- 从贝叶斯方法谈到贝叶斯网络
- java面试题(2)-集合相关面试题
- 利用二叉树设计同学录管理系统
- Crackme 24
- LeetCode-31. Next Permutation
- 树结构练习——排序二叉树的中序遍历
- 对于康拓展开的理解
- 对JDBC驱动注册--DriverManager.registerDriver和 Class.forName()的理解