package
com.javaeye.kang.adapter;
/**
*
单项
适配器模式
*
面向接口
编
程
*
如果将
B
接到
A
上用(在原先
图
像清晰化的基
础
上再去噪声),
A
主
动
,
B
被
动
*
要点是:
继
承方法
*/
class
A {
public
void
funA() {
System.
out
.println(
"
图
像清晰化!
"
);
}
}
//
面向接口
编
程,噪声
处
理接口
//
使用接口来管理所有的
扩
展模
块
(被
动
方模
块
可能
进
行互相切
换
)
interface
YawpDispose {
public
abstract
void
yawpDispose();
}
class
OldYawpDispose
implements
YawpDispose {
public
void
yawpDispose() {
System.
out
.println(
"
图
像去噪声老算法!
"
);
}
}
class
NewYawpDispose
implements
YawpDispose {
public
void
yawpDispose() {
System.
out
.println(
"
图
像去噪声新算法!
"
);
}
}
//
对
A
进
行
扩
展,以后将
SubA
当成
A
来使用
//
在
SubA
的
funA
方法中增加
B
的
funB
方法
class
SubA
extends
A {
//
完全面向接口
编
程,可以将
YawpDispose
的任何
实现类对
象引
进
来(可以使用
spring
进
行
对
象注入)
private
YawpDispose
yawpDispos
;
public
SubA(YawpDispose yawpDispos) {
this
.
yawpDispos
= yawpDispos;
}
public
void
funA() {
super
.funA();
//
注意:
这
句代
码
可以去掉,假如去掉的
话
,就是功能替
换
了
//
(不再使用
图
像清晰化功能了,而是只是使用下面的去噪声功能了)
yawpDispos
.yawpDispose();
}
}
//
客
户
端、最
终
使用方
public
class
AdapterTest {
public
static
void
main(String[] args) {
//
想使用
图
像去噪声老算法就
new OldYawpDispose()
,想使用新算法就
new NewYawpDispose ()
//
下面
这
句
带
代
码
体
现
了多
态
,可
扩
充性比
较
好
YawpDispose
yawpDispos =
new
OldYawpDispose();
//
将去噪声
处
理的
对
象
传
到
SubA
对
象中去
SubA subA =
new
SubA(yawpDispos);
subA.funA();
}
}
|
相关推荐
适配器又分为单向适配器和双向适配器,在 android 中前者使用的比较频繁。比较常见的实现方式是:首先定义一个适配类,内部定义一个私有的需要适配的对象,该类提供一个构造函数,将该对象的一个实例作为参数传入,...
保存给玩家的所有数据都通过 props(是的,单向)流回到包裹的组件中。 PlayerAdapter接受一个名为propertySheets的道具,其中包含您的应用所需的属性表架构。 属性表中的数据将与其他数据一起通过props流回您的...
Session Bean 还可以再细分为 Stateful Session Bean 与 Stateless Session Bean ,这两种的 Session Bean都可以将系统逻辑放在 method之中执行,不同的是 Stateful Session Bean 可以记录呼叫者的状态,因此通常来...
Session Bean 还可以再细分为 Stateful Session Bean 与 Stateless Session Bean ,这两种的 Session Bean都可以将系统逻辑放在 method之中执行,不同的是 Stateful Session Bean 可以记录呼叫者的状态,因此通常...
回收中心是一个旨在支持以下模式的库:使用不可变的ViewModels的React性单向数据流。 它将RxJava的React性数据流与RecyclerView的高效UI结合在一起,并通过“视图”部分和“视图模型”支持UI组合。 入门 回收中心...
4.4.5 适配器(Adapter) 55 4.4.6 内存分配器(Allocator) 56 4.4.7 概念(Concept)和模型(Model) 56 4.5 C++ STL存在的一些问题 57 4.6 本章小结 57 第5章 C++ STL泛化技术分析 58 5.1 算法和迭代器 58 ...
4.4.5 适配器(Adapter) 55 4.4.6 内存分配器(Allocator) 56 4.4.7 概念(Concept)和模型(Model) 56 4.5 C++ STL存在的一些问题 57 4.6 本章小结 57 第5章 C++ STL泛化技术分析 58 5.1 算法和迭代器 58 ...
4.4.5 适配器(Adapter) 55 4.4.6 内存分配器(Allocator) 56 4.4.7 概念(Concept)和模型(Model) 56 4.5 C++ STL存在的一些问题 57 4.6 本章小结 57 第5章 C++ STL泛化技术分析 58 5.1 算法和迭代器 58 ...
17.4 适配器类(Adapter) 285 17.5 文本事件(TextEvent)及其处理 286 17.6 输入事件(InputEvent)抽象类 287 17.7 键盘事件(KeyEvent)及其处理 287 17.8 鼠标事件(MouseEvent)及其处理 291 17.9 项目事件...
选择第二项,使用NAT网卡(VMnet8虚拟网卡),表示虚拟机通过主机单向访问主机及主机之外的网络,主机之外的网络中的计算机,不能访问该虚拟机。 选择第三项,只使用本地网络(VMnet1虚拟网卡),表示虚拟机只能访问...