我正在运行一个运行和安排广告系列的电子邮件营销计划。所以我有两种类型的广告系列:
因为我希望我的程序一次创建一个广告系列。我想我将需要Singleton模式。 每个广告系列都包含常用属性和特定属性。例如。临时活动不需要时间表。此外,预定的广告系列会从预先编写的SQL文件中读取,同时即时运行即席广告系列。 我希望有一个结构良好的设计来支持这些。是工厂和 Singleton 的组合答案吗? 如果是这样,我可以有一个简化的例子吗? 如果没有,你推荐什么?
答案 0 :(得分:2)
模式很好,但模式是特定问题的解决方案。您似乎没有任何这些具体问题。
根据您的要求,您需要一个基类型变量和一个if语句来将一个或另一个派生类放入其中。
如果你想要面条,你必须决定它是意大利面还是意大利式饺子。选一个,加热,吃。请不要建立一个NoodleHeatingAbstractFactory,只允许加热一个保护良好的面条。保持简单。
答案 1 :(得分:0)
当您需要全局共享资源时,通常使用单例。如果不是从多个位置创建,那么只有一个实例,你不一定需要一个单例,否则你只需要创建一个实例并传递它。我认为AbstractFactory非常适合这里,但不确定Singleton。
更新 如果用户选择要创建的广告系列,我认为您不需要工厂。只需创建适当的广告系列,您就可以将其存储在ServiceLocator中,该ServiceLocator通常是Singleton,或者将其注入您创建的每个表单/窗口中。
依赖注入倾向于更容易进行单元测试,因为您可以模拟广告系列