
课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
我们在上文中给大家简单介绍了Java程序员在学习代理模式的时候需要掌握的一些基础知识等内容,而本文我们就再来学习一下,适配器模式与代理模式的区别都有哪些。
1、描述
适配器模式顾名思义就是将某个类的接口转换成客户端期望的另一个接口表示。适配器模式可以消除由于接口不匹配所造成的类兼容性问题。
2、适用性
客户端需要调用现有的业务类,但此业务类的接口又不适用客户端的调用,这时就可以使用适配器模式,提供一个适配器类来达到目的。
3、实现逻辑
适配器模式一般包括下面三种角色类:
目标接口类:定义客户端需要的接口规范。
适配者类:现有的业务类。
适配器类:将现有业务类的接口转换为适合客户端调用的接口
适配器模式有两种实现方式:
一种是继承现有业务类(适配者类)并实现目标接口类,在实现目标接口时调用父类方法,我们称之为类适配器。但这种适配器缺点很明显,继承会使现有的业务类(适配者类)接口对适配器类完全暴露,使得适配器具有现有接⼝类的全部功能,破坏了适配者类的封装性。
通常情况下我们会使用另一种对象适配器,对象适配只需实现目标接口,持有一个适配者类的实例并扩展其方法。这样做的好处是客户端调用适配器类时只能调用自己需要的接口,保证了原有接口的封装性。
4、实战代码
现有用户业务类存在用户id查询用户和列表查询返回用户实例对象或其实例集合,但现在新增业务需要通过id查询用户信息并返回JSON字符串。
5、适配器模式和代理模式
5.1、相同点
适配器模式和代理模式结构同属结构型模式。两者都是通过增加一层中介层(代理模式增加代理类,适配器模式增加适配器类)来实现对原有类的扩展。
5.2、不相同点
两者应用场景有明显不同,适配器模式主要针对新旧接口不一致时导致的客户端无法正常调用的情况,因为我们旧接口类可能存在某种耦合而导致无法重构,为了使用旧接口的某些功能,而创建出来的转换器使旧接口转换成能被客户端使用的新接口。
而代理模式的主要作用是为了不把具体实现暴露出去,且通过代理类做一些处理。代理类接口和原有接口需要保证完全原一致。
【免责声明】本文系本网编辑部分转载,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及作品内容、版权和其它问题,请在30日内与管理员联系,我们会予以更改或删除相关文章,以保证您的权益!更多内容请加danei456学习了解。欢迎关注“达内在线”参与分销,赚更多好礼。