」は、良いクラス設計のポイントです。このパターンを適用することでクライアントは実装に依存せずに、抽象インターフェースにのみ依存するようになります。クラスを修正しなければなりません。インターフェースの変更(追加)を行わなければならなくなるので、子クラスがほとんど追加されないような場合にだけ使った方が良いと思います。Singleton不適切なSingletonの使い方をしている部分をリファクタリングします。Singletonパターンを必要としない場面は下記のようなときがあります。些細なメモリやパフォーマンスを改善するためだけに使われるSingletonオブジェクト下層のクラスが同一層のリソース以外を使う目的で使われているSingletonオブジェクトSingletonを使うべき理由は以下だけです。クラスに依存している。リファクタリング前のコードでは、ConsoleクラスをHitStayResponseオブジェクトを上位層から下位層に渡すためのRegistの役割に使っている。Blackjackクラスにセッターメソッドを用意して、無駄なRegistクラスを作らないように修正されている。パターンをを使って分かりやすくします。パターンを使ってクラスを分割すると、ロジックがすっきりすることがあります。随時サンプルコードが増えていく予定のようです。Wiki(サンプルコード有)GoFのデザインパターンを学ぶ定番です。GoF以外のデザインパターンが載ってます。PLoPで扱われている中で主なものを選んであります。エンタープライズで使えるパターン集のバイブル的本です。Web系の方が強いですがスマホアプリもできます。Webサービス開発やスマホアプリ開発案件あればお声がけください。