单身模式结合工厂

时间:2014-05-27 11:47:37

标签: c# design-patterns singleton factory-pattern

我正在运行一个运行和安排广告系列的电子邮件营销计划。所以我有两种类型的广告系列:

  1. Ad hoc
  2. 预定
  3. 因为我希望我的程序一次创建一个广告系列。我想我将需要Singleton模式。 每个广告系列都包含常用属性和特定属性。例如。临时活动不需要时间表。此外,预定的广告系列会从预先编写的SQL文件中读取,同时即时运行即席广告系列。 我希望有一个结构良好的设计来支持这些。是工厂 Singleton 的组合答案吗? 如果是这样,我可以有一个简化的例子吗? 如果没有,你推荐什么?

2 个答案:

答案 0 :(得分:2)

模式很好,但模式是特定问题的解决方案。您似乎没有任何这些具体问题。

根据您的要求,您需要一个基类型变量和一个if语句来将一个或另一个派生类放入其中。

如果你想要面条,你必须决定它是意大利面还是意大利式饺子。选一个,加热,吃。请不要建立一个NoodleHeatingAbstractFactory,只允许加热一个保护良好的面条。保持简单。

答案 1 :(得分:0)

当您需要全局共享资源时,通常使用单例。如果不是从多个位置创建,那么只有一个实例,你不一定需要一个单例,否则你只需要创建一个实例并传递它。我认为AbstractFactory非常适合这里,但不确定Singleton。

更新 如果用户选择要创建的广告系列,我认为您不需要工厂。只需创建适当的广告系列,您就可以将其存储在ServiceLocator中,该ServiceLocator通常是Singleton,或者将其注入您创建的每个表单/窗口中。

依赖注入倾向于更容易进行单元测试,因为您可以模拟广告系列