過度に複雑にしたように聞こえます。明らかに、アイデアは実際には「名前が付けられています」という名前はありません totalSave
「ユーザーはそれを保存する場所をあまり気にしないので、投稿の残りの部分からは、実際にどのように保存するかは気にしません。
とはいえ、これをもう少し具体的にするために、プログラムの多数の部分が追加される可能性のある「合計スコア」状態について考えてみましょう。あなたが取るかもしれないいくつかのアプローチがあります。いずれにせよ、スコアを追跡している場所のどこかにオブジェクトがある可能性があります。それを呼びます Game
オブジェクトですが、それはaになる可能性があります Level
または何でも。
だから、3つの大きな考え方があります:あなたはこれを渡すことができます Game
すべての人に目を向けると、あなたはaを持つことができます Game
Singleton、または通知を使用できます。これらのアプローチにはそれぞれ利点があり、あなたが選ぶ人なら誰でも簡単なプログラムでは問題ありません(個人的には、非常に単純なプログラムでは、シングルトンを使用します)。
最初のスキームでは、プログラムのある時点で作成します Game
いくつかのオブジェクト addToScore:
方法。このオブジェクトは、スコアを更新する必要がある他のすべてのオブジェクトのプロパティとして割り当てます。それらの各呼び出し [self.game addToScore:value]
. 。このアプローチにより、ユニットテストは少し簡単になりますが、実装するのは少し面倒です。
2番目のスキームには、いくつかあります 共有シングルトン +[Game sharedGame]
. 。スコアを更新するときは、電話してください [[Game sharedGame] addToScore:value]
. 。これは一般的に実装するためのEASIETです。
3番目のスキームには、いくつかのオブジェクトがあります(Game
)それは使用します NSNotificationCenter
通知を観察するため。スコアを更新する場合は、ユーザー辞書に追加する金額を含む通知を投稿するだけです。これは、物事を非常に分離するのに最適ですが、再び、より一般的なケースでは少し退屈になる可能性があります。
しかし、@Chuckが指摘しているように、あなたはおそらくこれを考えすぎているので、これらのことが通常どのように機能するかについてより良い感覚を得るために、いくつかのチュートリアルに戻って作業したいと思うかもしれません。あなたが説明している状況の種類はそれほど複雑ではありません。