是否有一个抽象网络通信的设计模式的名称?

时间:2014-08-12 16:36:34

标签: design-patterns

我有一些组件依赖的界面:

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();
  }
}

是否有一个描述上述抽象和设计的命名设计模式?它看起来有点像适配器模式,但它没有改变接口。接收器本身可以实现为装饰器,但是没有描述发送器,或者两者是如何结合使用的。

2 个答案:

答案 0 :(得分:1)

你所做的让我想起了Stubs和Skeletons。看看。

它是否符合您的问题?

答案 1 :(得分:0)

我认为,鉴于动机,Adapter模式(特别是class variation)就是你想要的。一个适配器可以在本地执行代码,而另一个适配器实现可以进行远程调用。

我并不完全同意Waog的回答,因为他提到的模式的动机是完全不同的。此外,适配器模式与Dependency Inversion Principle一起使用,以允许交换不同的低级实现。