まず、Objective-Cを使用していますが、これはまったく問題ではありません。
私の状況は次のとおりです。
2つの異なるシナリオがあります。私はそれらを次のようなプリプロセッサマクロで区別します。
#ifdef USER
do some stuff for scenario 1
#else
do some stuff for scenario 2
どちらのシナリオも、アプリケーション全体のアイテムのリストで機能しますが、違いはそれらのアイテムを取得する方法です。
最初のものでは、サーバーにリクエストを送信してアイテムを取得します。
2つ目は、ローカルデバイスストレージから取得します。
私が今持っているのは、実装された2番目のシナリオです。ローカルストレージからアイテムを取得することでアイテムのリストを返すシングルトンクラスがあります。(従来のデータベースシングルトンのように)
他のシナリオを追加したいと思います。アイテムはアプリ全体のどこからでも取得できるので、これもシングルトンにしたいです。
シングルトンスーパークラスと、アイテムを取得するさまざまな方法を実装する2つのサブクラスを持つことは理にかなっていますか?シングルトン階層は私にはかなり奇妙に聞こえます。