タグ

design patternに関するsiik02のブックマーク (7)

  • デザインパターン ~Visitor~ - Qiita

  • サルでもわかる 逆引きデザインパターン 第3章 逆引きカタログ J2EE編 Facade(ファサード)

    イントロダクション みなさんのサーブレット(Strutsを使用している場合はアクションクラス)の行数は、平均どれくらいでしょうか? データベースアクセスや業務処理など、すべての処理をサーブレットに詰め込もうとして、あっという間に1000行を越すような「太ったサーブレット」を作ってしまったことありませんか? サーブレットを初めて書いたときは筆者もそうでした。 このような「長く」「すべての処理が入った」サーブレットのことをすべてのことを行う魔法のようなサーブレットということで「マジックサーブレット」と呼びます。 マジックサーブレットは保守や機能拡張が難しいのはもちろんのこと、「アプリケーションが提供する機能」を把握することが難しくなるという弊害があります。 機能を把握できないと「あの機能ってどこにあったっけ?」という状況を生み出しがちになります。 そのような状況を避けるためにも、「サービスを提

  • 【デザインパターン】アダプタパターン - dorivenの日記

    とあるバグに数時間悩んでいたのですが、その原因がDBにNULLではなく空文字が入っていることでUNIQUEでエラーしてた。 メンターの方に指摘された時は、ああぁぁぁぁってなりました。 それでは今週は、デザインパターンの【Adaptor】についての記事を書いていきます。 参考書 さらっと読める「OREILLY Head First デザインパターン」を参考にしながら書いています。 しばらくはこいつを参考にデザインパターンについて書いていくよ! 一覧 この記事は以下の様な流れで記述される。 Adaptorパターンって何ですか? Adaptorパターンのメリット 身近で簡単な使用例 Adaptorパターンを使う Adaptorパターンって何ですか? Adaptorパターンとは、2つの異なる互換性のないクラスを、連携させるパターンです。 来のクラスのインターフェースとは、異なるインターフェースを

    【デザインパターン】アダプタパターン - dorivenの日記
  • デザインパターン「Adapter」 - Qiita

    はじめに 投稿はJava言語で学ぶデザインパターン入門のデザインパターンをまとめた記事です。今回はSingletonパターンになります。 まとめ一覧はこちら Adapterパターン Adapterとは Adapterとは適合するという意味で、Wrapperパターンと呼ばれることもあります。 「すでに提供されているもの」を「利用できるもの」にするためのデザインパターンで、書ではAC電源とノートパソコンの間のACアダプターを例として説明されています。 利用場面として以下が考えられます 関連性のないクラス通しを既存のクラスを変えずに関連付けする場合 既存のクラスをある新しいインターフェイスを通じて再利用したい場合 既存のクラス・インターフェイスをアプリケーション固有なものに(使いやすく)したい場合 Adapterパターンのクラス図 利用する側はAdapterを生成し、Target[インタフェ

    デザインパターン「Adapter」 - Qiita
  • Adapter パターン - デザインパターン入門 - IT専科

    Adapter パターン 「Adapter」という英単語は、「適合させるもの」という意味です。 互換性のないインタフェースを持つメソッド間の相違を、埋めるような(適合させる)パターンが、「Adapter パターン」です。つまり、「Adapter パターン」は、ある任意の機能のインタフェースを変更することなく、他クラスが提供している新しい機能を使用できるようにするパターンです。 このパターンには、以下の2つの実装方法があります。 継承(is a 関係)を利用した方法 委譲(has a 関係)を利用した方法 役割り 1. Client(利用者) 「Target」のメソッドを利用して処理を行います。 2. Target(対象) 要求されているメソッド(インタフェース)を定めます。 3. Adaptee(適合される側) 既存のメソッドを提供します。このメソッドの機能を「Target」のインタフェー

  • サルでもわかる 逆引きデザインパターン 第2章 逆引きカタログ ロジック編 Strategy(ストラテジ)

    イントロダクション 入出力は同じだけど条件によってアルゴリズムの交換を行いたい場合や、将来的にアルゴリズムが変更される可能性がある処理に遭遇する場面があります。 また、switch文などの条件分岐にアルゴリズムを埋め込むような処理を行うと、変更が発生した場合に他のアルゴリズムへ影響が生じたりコードが冗長になったりし、保守性がよくありません。 ストラテジパターンは、アルゴリズムをクラス化することにより、アルゴリズムの切り替えを使用するクラスとは無関係に簡単に行えるようにするパターンです。 なお、ストラテジは「戦略」という意味です。条件によってアルゴリズムを切り替えるところは、まるで戦略を練っているようですね。 パターン解説 データ処理を例にストラテジパターンを説明します。 図6の左側のように、入力したデータ処理が条件により振り分けられ、最終的に同じ型のデータを出力する処理が存在します。 この

  • サルでもわかる 逆引きデザインパターン 第2章 逆引きカタログ ロジック編 Factory/Factory Method(ファクトリ/ファクトリメソッド)

    イントロダクション オブジェクトを利用する側からすれば、使用する際にオブジェクトの詳細を意識したくはありませんよね。 たとえば、条件によってデータファイルの読み込みに使うオブジェクトが異なる場合、CSV形式であればCSVDataReaderオブジェクトを、XML形式であればXMLDataReaderオブジェクトを生成します。 通常はif、else、switchなどの条件分岐を使用して、条件ごとに生成するオブジェクトを変更します。 ここで新たなデータファイル形式への対応が必要になった場合は、新しいオブジェクト生成処理と、条件式を追加しなければいけません。 オブジェクトの使用者は、オブジェクトが使用できる状態で受け渡してもらい、オブジェクトは使うことだけに専念したいものです。 また、このようにオブジェクトの生成処理と使用処理が同じコードに書かれていた場合、オブジェクトの生成処理によってオブジェ

  • 1