文件名称:定义和结构-vue不通过路由直接获取url中参数的方法示例
文件大小:1.31MB
文件格式:PDF
更新时间:2024-06-27 12:17:23
java 设计模式 单例模式 工厂模式
这个 USB 接口转接器正是我们今天要谈到的适配器。而在软件开发中采用类似于上面方式 的编码技巧被称为适配器模式。 二、定义和结构 《设计模式》一书中是这样给适配器模式定义的:将一个类的接口转换成客户希望的另外 一个接口。Adapter 模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。由 引子中给出的例子可知,这个定义描述的功能和现实中的适配器的功能是一致的。 可能你还是不太明白为什么要使用适配器模式。我们来举个例子也许能更直接的解除你的 疑惑。 比如,在一个画图的小程序中,你已经实现了绘制点、直线、方块等图形的功能。而且为 了让客户程序在使用的时候不用去关心它们的不同,还使用了一个抽象类来规范这些图形的接 口。现在你要来实现圆的绘制,这时你发现在系统其他的地方已经有了绘制圆的实现。在你庆 幸之余,发现系统中已有的方法和你在抽象类中规定的方法名称不一样!这可怎么办?修改绘 制圆的方法名,就要去修改所有使用它的地方;修改你的抽象类的方法名,也要去修改所有图 形的实现方法以及已有的引用。还有其它的方法没有?那就是适配器模式了。 可以看出使用适配器模式是为了在面向接口编程中更好的复用。如果你的系统中没有使用 到面向接口编程,没有使用到多态,我想大概也不会使用到适配器模式。 下面来看看适配器模式的组成吧。 1) 目标(Target)角色:定义 Client 使用的接口。 2) 被适配(Adaptee)角色:这个角色有一个已存在并使用了的接口,而这个接口是需要我们 适配的。 3) 适配器(Adapter)角色:这个适配器模式的核心。它将被适配角色已有的接口转换为目标 角色希望的接口。 放上一个简单的类图,这只是适配器模式实现的一种情况: Target Adapter Adaptee 三、分类 在《设计模式》一书中将适配器模式分为类适配器模式和对象适配器模式。区别仅在于适 配器角色对于被适配角色的适配是通过继承完成的还是通过组合来完成的。由于在 java 中不支 持多重继承,而且继承有破坏封装之嫌,众多的书中(包括《设计模式》)都提倡使用组合来代