1

コメントはone of my other questionsにありました。今、私はシングルトンSessionを使用しています。それは私のサーバーへの一定のTCP接続のカプセル化です。アプリケーションの起動時に接続し、アプリケーションの全ライフタイム中に接続を維持する必要があります。私は1つだけ必要です(それは同じアプリから私のサーバーに複数の接続を持つ意味がありません)。グローバルにアクセス可能でなければなりません。このオブジェクトはシングルトンですか?

この種のオブジェクトにシングルトンを使用するのは悪い設計ですか?

+0

はい、確かです。それはシングルトンです。 – Fattie

答えて

2

1より大きい値が決してなく、グローバルに使用可能な場合は、シングルトンパターンがここで意味を持ちます。しかし、この情報はあなたの以前の質問から除外されました。それが私のやり方でコメントした理由です。

あまりにも多くの人が、問題の実際の解決策を見つけるのではなく、簡単に問題を解決するためにシングルトンに傾いています。この場合、iOS端末のUIScreenまたはと並行して描画します。

UIScreenにはmainScreenシングルトンがあります。これはiPhone、iPadなどの画面を指します。これらのデバイスには1つのメイン画面しか存在しません。

逆に、UIDeviceは同じ目的を達成するcurrentDeviceクラスメソッドを持っています:1つのデバイスしか存在できません。

2

いいえ、シングルトンパターンはこのアプリケーションでは非常に良いと言えます。私はiAdのインスタンスを管理するクラスで私のアプリで同様の状況を抱えています。私は窓に応じて何度も広告を読み込むつもりはありません。私はちょうどそれをシャッフルしたい。

同様に、メンテナンスするセッションがあります。シングルトンの代わりにAppDelegateで初期化し、アプリからアクセスしてください。これは機能的にはシングルトンパターンと同等ですが、あなたが知っているクラスを実際にピギーバックしているので、はるかに控えめです。

関連する問題