skillup

技術ブログ

アーキテクト設計全般

デザインパターンの使い所

投稿日:

昔からデザインパターンは勉強しておりましたが、使い所などで悩むことが多かったです。

現在の現場でいろいろなパターンを見させていただき、なんとなくではありますが使い所がわかったので、まとめてみようと思います。

Factoryパターン

Simple Factoryパターンについて

インスタンス生成をFactory内部で行うことで疎結合化させることができます。

使い所はテストデータの構築などで一部のステータスや状態変化系のパラメータだけ変えたい時など。

Facadeパターン

Facadeパターンについて(Laravelを題材に)

窓口を簡潔にすることで、アプリ本体とライブラリを疎結合状態にすることができる。インスタンス作成を不要にできる。

使い所としては、外部のライブラリを読み込み、それを使うときなど。

Observeパターン

Observeパターンについて

event-listenerについて

特定のモデルを監視し、何かのイベントをトリガーとして、起動するパターン。

使い所としてはLogの仕込みや履歴系のテーブルの保存など。

ただし、通常のプログラムとは別の場所に処理を書くため、動きを把握しきれないというデメリットもあり。類似の処理としてevent-linsterなど

Stateパターン

ステートパターンについて

状態遷移の担保など。

おもにstatusなどの状態を表す値でつかうことが多い。一定のステータスから一定のステータスへの変更がありえるか、ありえないかなど。

ファーストコレクション

値オブジェクトやファーストコレクションなどについて

在庫状態や予約データなど、変数や配列でもたせるだけでは足らず、メソッドなども併せて、複雑な状態を表現するときに使用。

シングルトンパターン

インスタンスの生成を1つにできる。

グローバルな値を使いたいとき。かつメモリやCPUの消費を抑えられるというメリットがある。オブジェクト指向ではあまりないかも・・・

【初心者向け】シングルトンパターンをわかりやすく解説

Repositoryパターン

Service層と値オブジェクト、Modelなどのはしわたしをします。

大きい効果を発揮する箇所としてはキャッシュとDBで処理を分けたいとき。

要は参照系の処理はアクセスが多いため、Redisなどのキャッシュを使い、更新系の処理などはDBを見なくてはいけない。。。のようなときにIFは共通なんだけれども、実装を分けたい場合に便利です。

リポジトリとは?

リポジトリパターンと Laravel アプリケーションでのディレクトリ構造

-アーキテクト設計全般
-

執筆者:


comment

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

関連記事

no image

アプリケーションアーキテクチャについて 〜既存のMVCに関して〜

今回はアプリケーションのルーター以降のアーキテクチャに関して。主にMVCなどについて説明したいと思います。 Contents1 MVC(Model,Controller,View)1.1 トランザクシ …

no image

オブジェクト指向 アプリケーション間連携(主にWebAPI)

本日も引き続き「現場で役立つシステム設計の原則」を読み進めてます。 本日はプレゼンテーション層、いわゆるMVCのViewにあたる部分。 Contents1 アプリケーション間連携(主にWEBAPIに関 …

no image

オブジェクト指向設計 依存関係の管理

オブジェクト指向シリーズ。読みにくい本が多い中でオブジェクト指向設計実践ガイドは勉強になるなー。 Contents1 依存関係の管理1.1 メモ1.2 実際のコーディング上のコツ1.3 感想 依存関係 …

no image

クリーンアーキテクチャーがらみの話題など

クリーンアーキテクチャに関してメモ。 自分がプログラミングを学習したのは10年ほど前ですが、当時はいわゆるMVC(Model – Controller – View)でアプリケ …

no image

Observeパターンについて

Contents1 Observeパターン2 他の対策2.1 プログラムで頑張って制御2.1.1 メリット2.1.2 デメリット2.2 Databaseのtirggerを使う(DB更新系のみ)2.2. …

アーカイブ