首先,我使用的是Objective-C,但这一点都不重要。
我的情况是:
我有两种不同的情况。我通过预处理器宏来区分它们,例如:
#ifdef USER
do some stuff for scenario 1
#else
do some stuff for scenario 2
这两种方案都适用于整个应用程序中的项目列表,但不同之处在于获取这些项目的方式。
在第一个中,我通过向服务器发送请求来获取项目。
在第二个中,我从本地设备存储中获取它们。
我现在拥有的是实施的第二种情况。我有一个单例类,它通过从本地存储中获取项目列表来返回给我。(就像一个传统的数据库单例)
我想添加其他场景。由于项目可以从应用程序的任何点获取,我希望这也是一个单例。
有一个单例超类,然后有两个子类实现不同的获取项目的方式是否有意义?单例层次结构对我来说听起来很奇怪。