java-设计模式(结构型)-【适配器模式】

1.适配器(Adapter Mode)

定义:将两个不兼容的类纠合在一起使用,属于结构型模式,需要有Adaptee(被适配者)和Adapter(适配器)两个身份

目的是消除由于接口不匹配所造成的类的兼容性问题。

我们经常碰到需要将两个没有关系的类组合在一起使用,第一种方法是,修改各自的接口,但是违背了开闭原则

第二种方法是,使用Adapter,在两种接口之间创建一个混合接口(混血儿)。

分类:类的适配器模式、对象的适配器模式、接口的适配器模式

1.1 类的适配器模式

时间: 2024-10-19 22:49:38

java-设计模式(结构型)-【适配器模式】的相关文章

java设计模式--结构型模式--组合模式

什么是组合模式,这个有待研究,个人觉得是各类组合而形成的一种结构吧. 组合模式: 1 组合模式 2 概述 3 将对象组合成树形结构以表示"部分-整体"的层次结构."Composite使得用户对单个对象和组合对象的使用具有一致性." 4 5 6 适用性 7 1.你想表示对象的部分-整体层次结构. 8 9 2.你希望用户忽略组合对象与单个对象的不同,用户将统一地使用组合结构中的所有对象. 10 11 12 参与者 13 1.Component 14 为组合中的对象声明接

java设计模式--结构型模式--享元模式

享元模式 概述 运用共享技术有效地支持大量细粒度的对象. 适用性 当都具备下列情况时,使用Flyweight模式: 1.一个应用程序使用了大量的对象. 2.完全由于使用大量的对象,造成很大的存储开销. 3.对象的大多数状态都可变为外部状态. 4.如果删除对象的外部状态,那么可以用相对较少的共享对象取代很多组对象. 5.应用程序不依赖于对象标识.由于Flyweight对象可以被共享,对于概念上明显有别的对象,标识测试将返回真值. 参与者 1.Flyweight 描述一个接口,通过这个接口flywe

java设计模式--结构型模式--装饰模式

1 装饰模式 2 概述 3 动态地给一个对象添加一些额外的职责.就增加功能来说,Decorator模式相比生成子类更为灵活. 4 5 6 适用性 7 1.在不影响其他对象的情况下,以动态.透明的方式给单个对象添加职责. 8 9 2.处理那些可以撤消的职责. 10 11 3.当不能采用生成子类的方法进行扩充时. 12 参与者 13 1.Component 14 定义一个对象接口,可以给这些对象动态地添加职责. 15 16 2.ConcreteComponent 17 定义一个对象,可以给这个对象添

java设计模式--结构型模式--外观模式

1 外观模式 2 概述 3 为子系统中的一组接口提供一个一致的界面,Facade模式定义了一个高层接口,这个接口使得这一子系统更加容易使用. 4 5 6 适用性 7 1.当你要为一个复杂子系统提供一个简单接口时.子系统往往因为不断演化而变得越来越 8 复杂.大多数模式使用时都会产生更多更小的类.这使得子系统更具可重用性,也更容 9 易对子系统进行定制,但这也给那些不需要定制子系统的用户带来一些使用上的困难. 10 Facade可以提供一个简单的缺省视图,这一视图对大多数用户来说已经足够,而那些需

java设计模式--结构型模式--桥接模式

1 桥接模式 2 概述 3 将抽象部分与它的实现部分分离,使它们都可以独立地变化. 4 5 6 适用性 7 1.你不希望在抽象和它的实现部分之间有一个固定的绑定关系. 8 例如这种情况可能是因为,在程序运行时刻实现部分应可以被选择或者切换. 9 10 2.类的抽象以及它的实现都应该可以通过生成子类的方法加以扩充. 11 这时Bridge模式使你可以对不同的抽象接口和实现部分进行组合,并分别对它们进行扩充. 12 13 3.对一个抽象的实现部分的修改应对客户不产生影响,即客户的代码不必重新编译.

设计模式——结构型模式

设计模式的另一大类型为结构型.共收录了7个模式,分别为适配器模式.桥接模式.组合模式.装饰模式.外观模式.享元模式.代理模式.下面从特点和使用两方面小探,欢迎交流!      适配器模式(Adapter):将一个类的接口转换成客户希望的另外一个接口.Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作.[大话设计模式]        特点:需要交流的两方,在数据和行为都匹配,但接口不符时,我们应该考虑用适配器,目的是促使交流和复用.可以理解为入乡随俗,相同的意思,不同的表达

设计模式(结构型)之组合模式(Composite Pattern)

PS一句:最终还是选择CSDN来整理发表这几年的知识点,该文章平行迁移到CSDN.因为CSDN也支持MarkDown语法了,牛逼啊! [工匠若水 http://blog.csdn.net/yanbober] 阅读前一篇<设计模式(结构型)之桥接模式(Bridge Pattern)> http://blog.csdn.net/yanbober/article/details/45366781 概述 组合模式又叫做部分-整体模式,使我们在树型结构的问题中模糊简单元素和复杂元素的概念,客户程序可以像

设计模式(结构型)之享元模式(Flyweight Pattern)

PS一句:最终还是选择CSDN来整理发表这几年的知识点,该文章平行迁移到CSDN.因为CSDN也支持MarkDown语法了,牛逼啊! [工匠若水 http://blog.csdn.net/yanbober] 阅读前一篇<设计模式(结构型)之外观模式(Facade Pattern)>http://blog.csdn.net/yanbober/article/details/45476527 概述 当一个软件系统在运行时产生的对象数量太多,将导致运行代价过高,带来系统性能下降等问题.所以需要采用一

设计模式(结构型)之外观模式(Facade Pattern)

PS一句:最终还是选择CSDN来整理发表这几年的知识点,该文章平行迁移到CSDN.因为CSDN也支持MarkDown语法了,牛逼啊! [工匠若水 http://blog.csdn.net/yanbober] 阅读前一篇<设计模式(结构型)之装饰者模式(Decorator Pattern)>http://blog.csdn.net/yanbober/article/details/45395747 概述 一个客户类需要和多个业务类交互,而这些业务类经常会作为整体出现,由于涉及到的类比较多,导致使

设计模式(结构型)之代理模式(Proxy Pattern)

PS一句:最终还是选择CSDN来整理发表这几年的知识点,该文章平行迁移到CSDN.因为CSDN也支持MarkDown语法了,牛逼啊! [工匠若水 http://blog.csdn.net/yanbober] 阅读前一篇<设计模式(结构型)之享元模式(Flyweight Pattern)>http://blog.csdn.net/yanbober/article/details/45477551 概述 代理模式是常用的结构型设计模式之一,当无法直接访问某个对象或访问某个对象存在困难时可以通过一个