我有一些组件依赖的界面:
interface IFoo {
void DoWork()
}
class Component() {
void Method(IFoo f) {
f.DoWork();
}
}
以及界面的具体实现。
我想从组件中抽象出网络通信,以便它们可以用作胖客户端或瘦客户端,因此我编写了一个发送器/接收器对,分别实现和包含接口:
class Sender : IFoo {
void DoWork() {
// do network stuff to send message
}
}
class Receiver {
IFoo f = ...
void Recieve (...) {
f.DoWork();
}
}
是否有一个描述上述抽象和设计的命名设计模式?它看起来有点像适配器模式,但它没有改变接口。接收器本身可以实现为装饰器,但是没有描述发送器,或者两者是如何结合使用的。
答案 0 :(得分:1)
答案 1 :(得分:0)
我认为,鉴于动机,Adapter模式(特别是class variation)就是你想要的。一个适配器可以在本地执行代码,而另一个适配器实现可以进行远程调用。
我并不完全同意Waog的回答,因为他提到的模式的动机是完全不同的。此外,适配器模式与Dependency Inversion Principle一起使用,以允许交换不同的低级实现。