设计模式之禅之设计模式-适配器模式
2016-01-21 13:10
337 查看
一:适配器模式的定义
--->一个补救模式,这种模式可以让你从因业务扩展而系统无法迅速适应的苦恼中解脱而出。
--->贫血对象和充血对象,这两个名词很简单,在领域模型中分别叫做贫血领域模型和充血领域模型,有什么区别呢?一个对象如果不存储实体状
态以及对象之间的关系,该对象就叫做贫血对象,对应的领域模型就是贫血领域模型,有实体状态和对象关系的模型就是充血领域模型
--->将一个类的接口变换成客户端所期待的另一种接口,从而使原本因接口不匹配而无法在一起工作的两个类能够在一起工作。
--->适配器模式又叫做变压器模式,也叫做包装模式(Wrapper),但是包装模式可不止一个,还包括了第17章讲解的装饰模式
View Code
--->一个补救模式,这种模式可以让你从因业务扩展而系统无法迅速适应的苦恼中解脱而出。
--->贫血对象和充血对象,这两个名词很简单,在领域模型中分别叫做贫血领域模型和充血领域模型,有什么区别呢?一个对象如果不存储实体状
态以及对象之间的关系,该对象就叫做贫血对象,对应的领域模型就是贫血领域模型,有实体状态和对象关系的模型就是充血领域模型
--->将一个类的接口变换成客户端所期待的另一种接口,从而使原本因接口不匹配而无法在一起工作的两个类能够在一起工作。
--->适配器模式又叫做变压器模式,也叫做包装模式(Wrapper),但是包装模式可不止一个,还包括了第17章讲解的装饰模式
package com.yeepay.sxf.template14; /** * 客户端测试 * 以前业务类,从本数据库获取用户信息 * 现在的业务,要从别的系统获取用户信息。别的系统的用户信息的接口返回值不兼容。 * 用适配器模式兼容别的用户系统的接口 * @author sxf * */ public class ClientTest { public static void main(String[] args) { //原有业务 IUserInfo userInfo=new UserInfo(); //获取名字 String nameString=userInfo.getNameById(1234); //获取地址 String addresString=userInfo.getAddressBydName(nameString); System.out.println("ClientTest.main()"+nameString); System.out.println("ClientTest.main()"+addresString); //现有变动业务,要远程RMI调用别的系统的用户 IUserInfo userInfo2=new UserInfoAdapter(); //获取别的系统的名字 String nameString2=userInfo2.getNameById(12345); //获取别的系统的地址 String addreString2=userInfo2.getAddressBydName(nameString2); System.out.println("ClientTest.main()"+nameString2); System.out.println("ClientTest.main()"+addreString2); } }
View Code
相关文章推荐
- 38. Count and Say leetcode python 2016 new season
- 大数据(十二) - Oozie
- eclipse项目迁移到android studio【转载】
- UITableView选择UITableViewStyleGrouped时 section的高度设置
- poj3126
- QT中event事件机制与signal关系
- js 里map功能的实现
- 8年百度联盟站长,从几十元/月到几十万/月,被封和反作弊经历
- 如何才能长见识
- Entity Framework 6 Recipes 2nd Edition(10-4)译 -> 从存储过程返回一个复杂类型
- servlet servlet基本概念和helloservlet实例
- spring定时任务配置 cron表达式
- centos 7 安装 桌面环境
- JS—事件对象
- 类方法能否访问自己的属性
- Android 如何监控当前Foreground Activity,如何获知应用程序的启动
- 升级到iOS9.0后,Http请求导致应用加载不出数据
- java实现快速排序
- python 字典中的排序
- web项目中使用aatp解析apk是报错