与工厂结合的单例模式

本文关键字:单例模式 结合 工厂 | 更新日期: 2023-09-27 18:05:34

我正在运行一个电子邮件营销程序,运行和安排活动。所以我有两种类型的活动在里面:

    特设
  1. 计划

因为我想让我的程序一次创建一个活动。我想我需要单例模式。每个活动都有共同的属性和特定的属性。临时活动不需要时间表。此外,计划的活动从预先编写的SQL文件中读取,而临时活动则立即运行。我希望有一个结构良好的设计来支持这些。FactorySingleton的组合是答案吗?如果有,能给我一个简化的例子吗?如果没有,你推荐什么?

与工厂结合的单例模式

模式很好,但是模式是特定问题的解决方案。你似乎没有这些特殊的问题。

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

如果你想吃面条,你得决定是要意大利面还是意大利饺子。挑一个,加热,吃。请不要建立一个只允许加热单一的、保护良好的面条的abstractfactory。保持简洁。

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

更新如果用户选择创建哪个活动,我认为你不需要一个工厂。只需创建合适的campaign,你可以将它存储在ServiceLocator中,ServiceLocator通常是Singleton,或者将它注入到你创建的每个窗体/窗口中。

依赖注入往往更容易进行单元测试,因为你可以模拟

活动