デザインパターンの覚え方

これは、旧Locibookにおいて書かれた記事です。復習ロボットには適用されない内容の可能性があります

多くのオブジェクト指向による開発では、クラスやオブジェクトの配置や組み合わせに、ある種のパターンが繰り返して用いられています。

GoF(Gang of Four)と呼ばれる4人(エーリヒ・ガンマ、リチャード・ヘルム、ラルフ・ジョンソン、ジョン・ブリシディース)は、多くのプロジェクトのソースコードを読み、これらの頻出するオブジェクトやクラス群のパターンをまとめました。これをデザインパターン(design pattern)といいます。デザインパターンは、次の23種からなります。

  • Iterator
  • Adapter
  • Template Method
  • Factory Method
  • Singleton
  • Prototype
  • Builder
  • Abstract Factory
  • Bridge
  • Strategy
  • Composite
  • Decorator
  • Visitor
  • Chain of Responsibility
  • Facade
  • Mediator
  • Observer
  • Memento
  • State
  • Flyweight
  • Proxy
  • Command
  • Interpreter

これらのパターンは、優れた開発者によって練られたパターンであり、開発しやすかったり拡張しやすいといった特徴があります。優秀な開発者たちが使ってきたパターンですから、そのパターン自体が優れているのは当然です。

また、開発者どうしのコミュニケーションにも、大きな役割を果たします。例えば、Abstract Factoryで実装したと伝えるだけで、デザインパターンという共通認識により、どのような実装であるかが一発で伝わります。

ここでは、記憶の宮殿を使った、デザインパターンの名前リストの覚え方を紹介します。もちろん、リストを覚えるだけでは意味が無いのでデザインパターンを個別に学習する必要があります。ただ、リストを覚えておけば、デザインパターンの全体像をつかみやすくなるので、記憶の定着が格段に上がります。

記憶の宮殿での、デザインパターンの覚え方

デザインパターンの各パターンを、Locibookを使って、記憶の宮殿に配置します。

なお、ほかの図と同様に、以下の図も1つの例です。背景画像は、ご自身の親しみのある場所に変更してください。また、置換画像も、より適したものがありましたら、そちらを採用してください。

覚えたい内容は、図において、0時方向から時計回りに配置していきます。

Iterator・Adapter・Template Method・Factory Methodの覚え方

Iterator・Adapter・Template Method・Factory Methodの覚え方
Iterator・Adapter・Template Method・Factory Methodの覚え方
  • Iterator(イテレーター)は、いて座を置換画像とします。
  • Adapter(アダプター)は、そのままアダプターを置換画像とします。
  • Template Method(テンプレートメソッド)は、天ぷらを置換画像とします。
  • Factory Method(ファクトリーメソッド)は、工場(ファクトリー)を置換画像とします。

Singleton・Prototype・Builder・Abstract Factoryの覚え方

Singleton・Prototype・Builder・Abstract Factoryの覚え方
Singleton・Prototype・Builder・Abstract Factoryの覚え方
  • Singleton(シングルトン)は、シングルベットの寝具(しんぐ)を置換画像とします。
  • Prototype(プロトタイプ)は、タンパク質(プロテイン)を置換画像とします。
  • Builder(ビルダー)は、ボディビルダーを置換画像とします。
  • Abstract Factory(アブストラクトファクトリー)は、虻(あぶ)を置換画像とします。

Bridge・Strategy・Composite・Decoratorの覚え方

Bridge・Strategy・Composite・Decoratorの覚え方
Bridge・Strategy・Composite・Decoratorの覚え方
  • Bridge(ブリッジ)は、橋を置換画像とします。
  • Strategy(ストラテジー)は、戦略っぽいイメージがあるため、チェスの画像を置換画像とします。
  • Composite(コンポジット)は、コンパスを置換画像とします。
  • Decorator(デコレーター)は、おでこを合わせている親子を置換画像とします。

Visitor・Chain of Responsibility・Facade・Mediatorの覚え方

Visitor・Chain of Responsibility・Facade・Mediatorの覚え方
Visitor・Chain of Responsibility・Facade・Mediatorの覚え方
  • Visitor(ビジター)は、混雑(ビジー)している訪問者(ビジター)たちを置換画像とします。
  • Chain of Responsibility(チェインオブレスポンシビリティ)は、鎖を置換画像とします。
  • Facade(ファサード)は、毛皮(ファー)を置換画像とします。
  • Mediator(メディエーター)は、瞑想(メディエーション)を置換画像とします。

Observer・Memento・State・Flyweightの覚え方

Observer・Memento・State・Flyweightの覚え方
Observer・Memento・State・Flyweightの覚え方
  • Observer(オブザーバー)は、観察している人を置換画像とします。
  • Memento(メメント)は、セメントを置換画像とします。
  • State(ステート)は、エンパイアステートビルを置換画像とします。
  • Flyweight(フライウェイト)は、釣りの毛鉤(フライ)を置換画像とします。

Proxy・Command・Interpreterの覚え方

Proxy・Command・Interpreterの覚え方
Proxy・Command・Interpreterの覚え方
  • Proxy(プロキシー)は、キッシュを置換画像とします。
  • Command(コマンド)は、コマンドラインを置換画像とします。
  • Interpreter(インタプリタ)は、翻訳者(ほんやくしゃ)の意味なので、本屋を置換画像とします。

デザインパターンの記憶の宮殿へのコメント

記憶の宮殿においた置換画像は、デザインパターンの名前を思いだすトリガーとなり、デザインパターンの名前はその中身を思いだすトリガーとなります。

つまり、記憶の宮殿化により、場所という記憶に残りやすい情報をとっかかりとして、デザインパターン自体の記憶を引き出すことができるようになります。

また、デザインパターンを使っていくうちに、場所をイメージしなくても、パターンがパッと思いつくようになります。こうなってしまえば、デザインパターンが身についたと言えるでしょう。

このように、何かを習得するための知識の一時保管場所として、記憶の宮殿はとても有用です。デザインパターン以外でも使えるので、活用してみてください。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

This site uses Akismet to reduce spam. Learn how your comment data is processed.