デザインパターンを Ruby で
Rust で書かれた例題コードのカタログ
生成に関するパターン
![Factory Method](/images/patterns/cards/factory-method-mini.png?id=72619e9527893374b98a5913779ac167)
Factory Method
スーパークラス内でオブジェクトを作成するためのインターフェースを提供しますが、 サブクラスでは作成されるオブジェクトの型を変更することができます。
構造に関するパターン
振る舞いに関するパターン
![Chain of Responsibility](/images/patterns/cards/chain-of-responsibility-mini.png?id=36d85eba8d14986f053123de17aac7a7)
Chain of Responsibility
ハンドラーの連鎖に沿ってリクエストを渡すことができます。 各ハンドラーは、 リクエストを受け取ると、 リクエストを処理するか、 連鎖内の次のハンドラーに渡すかを決めます。
![Command](/images/patterns/cards/command-mini.png?id=b149eda017c0583c1e92343b83cfb1eb)
Command
リクエストを、 それに関するすべての情報を含む独立したオブジェクトに転換します。 この転換により、 リクエストをメソッドの引数として渡したり、 リクエストの実行を遅らせたり、 待ち行列に入れたり、 取り消し操作を行なうことが可能になります。
![Mediator](/images/patterns/cards/mediator-mini.png?id=a7e43ee8e17e4474737b1fcb3201d7ba)
Mediator
オブジェクト間の混沌とした依存性を削減します。 パターンは、 オブジェクト間の直接の通信を制限し、 メディエーター・オブジェクトを介してのみの共同作業を強制します。
![Observer](/images/patterns/cards/observer-mini.png?id=fd2081ab1cff29c60b499bcf6a62786a)
Observer
複数のオブジェクトが観察しているオブジェクトに何かイベントが発生した時にそのイベントについて観察しているオブジェクトへ通知を行うサブスクリプションの仕組みを定義することができます。