今回はエンジニアとして欠かせない知識であるGoFのデザインパターンについて解説します。
今回は何となく概要をつかめるように解説します。
※僕自身も完璧に理解しているわけではないので、間違っている部分があるかもしれません。
間違いを見つけた際はコメントしていただけるとありがたいです。(o*。_。)oペコッ
デザインパターンって何?
『デザインパターン』とは、プログラムを書いているとよく出てくる処理の作り方をまとめたものです。
プログラムをデザインパターンに沿って作成すると、『再利用性の向上』『開発効率の向上』『可読性の向上』などが見込めます。
再利用性の向上
再利用性とは、アプリケーションの一部として書いたプログラムの一部をほかのアプリでも使用できるということです。
例えば、パスワードを暗号化するクラスがあったとします。
この処理を再利用性を高めて作成しておくことで
他のアプリで暗号化をコードを書かずに処理することができるのです。
開発効率の向上
デザインパターンを使用することで似た処理が出てきた際に構造を一から考える必要がなく処理を効率よく作成することができます。
可読性の向上
可読性の向上とはつまりソースコードが読みやすくなるということです。
プログラムの構造が複雑になった時にある程度決まった構造で作成されていればどこに何が書いてあるのかを大まかに予測することができ、ソースコードを理解する助けになります。
GoFのデザインパターン一覧
デザインパターンは以下の23個です。
今後の記事で1つずつご紹介します。
- Iterator (繰り返す)
- Adapter (かぶせる)
- Template Method (枠組みを決める)
- Factory Method (インスタンスを生成させる)
- Singleton (インスタンスを1つに制限)
- Prototype (インスタンスをコピー)
- Builder (複雑なインスタンスを生成)
- Abstract Factory (関連するインスタンスを生成させる)
- Bridge (機能と実装を分ける)
- Strategy (アルゴリズムを入れ替える)
- Composite (容器と中身を同一視する)
- Decorator (飾り枠と中身の同一視)
- Visitor (処理を訪問する)
- Chain of Responsibility (責任の連鎖)
- Facade (窓口)
- Mediator (仲介者)
- Observer (監視者)
- Memento (状態を保存)
- State (振る舞い)
- Fwlyweight (オブジェクトを軽くする)
- Proxy (代理する)
- Command (命令をクラスにする)
- Interpreter (文法をオブジェクトで表す)
コメント