首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >责任链设计模式混乱

责任链设计模式混乱
EN

Stack Overflow用户
提问于 2013-02-22 01:46:21
回答 1查看 1.9K关注 0票数 4

我理解责任链模式的概念,但也许我使用它是错误的。

我有几种类型的产品,并且我有一个控制器来控制为每种产品显示的接口。用户选择产品类型,每个控制器负责显示相应的接口并与之交互。

为此,我使用的是责任链模式,我认为这听起来不太好。我正在做的是创建一个控制器链,一旦得到产品类型请求,我就把它传递给控制器链,让适当的控制器实现请求。

但是当思考的时候,使用一个简单的工厂,但是有很多条件语句,也可以实现同样的目标。

你认为在这种情况下责任链的使用如何?

EN

回答 1

Stack Overflow用户

发布于 2013-02-22 21:12:41

就我而言,这项任务并非责任链。

通常,在责任链中,链元素的顺序很重要,而在这里则不是这样。

我试着做以下几件事。

创建某种注册表,其中包含一个包含productType键和控制器值的映射。

抽样实施情况:

代码语言:javascript
运行
复制
class ControllerRegistry
{
  //declaration for map and constructor

  public void Register(string productType, IProductController controller)
  {
    _map.Add(productType, controller);
  }

  public IProductController Find(string productType)
  {
    return _map[productType];
  }
}

在应用程序启动期间,您应该通过调用ControllerRegistry.Register方法注册所有控制器。

通过调用ControllerRegistry.Find方法可以获得适当的控制器。

与责任链相比,如果产品类型数量大,您将避免对性能的影响。

编辑

相同任务主题Design pattern for handling multiple message types

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15015522

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档