首页 / 设计模式 / 设计模式——适配器模式
设计模式——适配器模式
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了设计模式——适配器模式,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1369字,纯文字阅读大概需要2分钟。
内容图文
适配器模式:Adapter改造现有的接口从而适应新接口的要求。
适配器中需要有要适配的对象的引用。
适配器中包装多个被适配者是外观模式。
适配器模式的意图是改变接口符合客户的期望,外观模式的意图是提供子系统的一个简化接口。
这里容易联想到外观模式。外观模式提供了一个统一的接口,用来访问子系统中的一群接口。
比较以下三者的区别
装饰器 不改变接口但是加入责任;
适配器 将一个接口转化成另一个接口;
外观 让接口更简单
适配器模式类图:
以下程序模拟鸭子和火鸡的叫和飞的动作。假设你缺少鸭子对象,则将一个火鸡适配成一个鸭子,用火鸡冒充鸭子来使用。
1.定义鸭子接口
package net.dp.adapter.ducks; public interface Duck { public void quack(); public void fly(); }
2.定义火鸡接口
package net.dp.adapter.ducks; public interface Turkey { public void gobble(); public void fly(); }
3.定义出火鸡的实现类
package net.dp.adapter.ducks; public class WildTurkey implements Turkey { public void gobble() { System.out.println("Gobble gobble"); } public void fly() { System.out.println("I'm flying a short distance"); } }4.实现火鸡的适配器
package net.dp.adapter.ducks; public class TurkeyAdapter implements Duck { Turkey turkey; public TurkeyAdapter(Turkey turkey) { this.turkey = turkey; } public void quack() { turkey.gobble(); } public void fly() { for (int i = 0; i < 5; i++) { turkey.fly(); } } }
这样TurkeyAdapter就可以作为一只鸭子使用啦!!
5.测试类
package net.dp.adapter.ducks; public class DuckTestDrive { public static void main(String[] args) { WildTurkey turkey = new WildTurkey(); Duck turkeyAdapter = new TurkeyAdapter(turkey); testDuck(turkeyAdapter); } static void testDuck(Duck duck) { duck.quack(); duck.fly(); } }
原文:http://blog.csdn.net/liuchangqing123/article/details/43938595
内容总结
以上是互联网集市为您收集整理的设计模式——适配器模式全部内容,希望文章能够帮你解决设计模式——适配器模式所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。