タグ

programmingとdesignpatternに関するyukungのブックマーク (13)

  • Visitorパターンについて考えた — 裏紙

    ポリもーなんとかでなんとかする 例えば数値を表すNumNode、足し算を表すAddNode、それらのインターフェースとなるNodeがあるとします。 で、計算を実装する場合Nodeにcalcメソッドとか定義してNumNodeとAddNodeで実装します。 package visitor; public interface Node1 { int calc(); } class NumNode1 implements Node1 { public final int value; public NumNode1(int value) { this.value = value; } @Override public int calc() { return value; } } class AddNode1 implements Node1 { public final Node1 left; p

  • 今さらデザインパターン Visitorパターン編 - かとじゅんの技術日誌

    今回は,Visitorパターン.一言でいうとデータ構造(つまりモデル)にVisit(訪問)して処理するパターン.目的はモデルとモデルを処理するロジックの分離です.実は使ったことがないw よい機会なので考えてみたいと思います. Wikipedia Visitorパターン まずは事例から いつものごとく,ダイちゃんのサンプルを改編! モデルに直接ロジックを書くのではなく,Visitorを受け入れてそのVisitorにモデル(自分自身)を渡し,ロジックを実行するイメージです. こうすることでモデルとロジックが分離できるというパターンなんですね.各Converterのconvertメソッドで渡されたTable, Columnのモデルに用意したVisitorを訪問させて処理させています. public interface Acceptor { public void accept(Visitor v

    今さらデザインパターン Visitorパターン編 - かとじゅんの技術日誌
  • Javaで書くBuilderパターンのパターン - Qiita

    Builderパターン 個人的にBuilderパターンはオブジェクトの生成制御や、ものによっては可読性が高くて好きなパターンなんですが、その実装には用途によっていくつかパターンがあるので、まとめてみました。 生成するオブジェクトの条件 クラス名:People フィールド:String name(必須), Integer age(必須), String hobby(オプション) 必須要素はnullを禁止 PeopleクラスはStringを返り値とするhelloメソッドを持つ 今回はBuilderパターンの比較のため、パターン上必要でない限りgetterなどのメソッドは省略 Native Builder Builderパターンではなく、ただのコンストラクタ。Builderパターンを使いたくなるのはこれをやりたくないからだけど、比較のために記載。 class People { private S

    Javaで書くBuilderパターンのパターン - Qiita
  • Hibernate in Action における DTO についての考察 - A Memorandum

    もう10年以上前の、Hibernate in Action に書かれている DTO についての考察です。 HIBERNATE イン アクション 作者: Christain Bauer,Gavin Ki,倉橋央,勝嶌和彦出版社/メーカー: ソフトバンク クリエイティブ発売日: 2005/12/28メディア: 大型購入: 3人 クリック: 109回この商品を含むブログ (35件) を見る 何というか、文章が読みにくい部分ががあるため、コメントを挟みながら紹介します。 サーブレットベースのアプリケーションと、ビジネスロジックとデータアクセスがEJBコンテナにおいて実行されるアプリケーションとの間の最も重要な違いは、層を物理的に分離できるかどうかである。 J2EEの当初の目標は、分散コンポーネントの基盤を標準化することでした。 JTA による分散トランザクションや JNDI によるネーミングデ

    Hibernate in Action における DTO についての考察 - A Memorandum
  • Webアプリケーションのサービスクラスとは何か - 虎塚

    「JSP、サーブレット、サービス、DAO、DTOといった構成のアプリケーションにおけるサービスクラスとは何か」、という問いに自分なりの答えを出すのが、今日の宿題です。 自分の解答 ※注意: 以下の文章は言い切り形式で書いていますが、間違っているかもしれません。 ちょろっと調べたのですが、サービスについてそのものズバリの単一な定義を見つけることはできませんでした。なので、いくつかの観点から理解することを試みます。 モデル、ビュー、コントローラにおける「サービス」 アプリケーションをモデル、ビュー、コントローラに分けて見たとき、サービスはモデルに属します。モデルには、データベースアクセスを行うクラスと、システム固有の処理を行うクラスがあります。 サービスは、後者のシステム固有の処理を行うクラスに当たります。 なお、データベースアクセスを行うクラスは、データを保持するクラスと、データベースアクセ

    Webアプリケーションのサービスクラスとは何か - 虎塚
  • Singletonのサブクラス化

    Javaで、Singletonのサブクラス化のコーディングを試みます。インスタンスの唯一性をどのように保証するかを考えましょう。 目次 はじめに (1) Singletonの基形 —— 唯一のインスタンスを作る (2) クラスごとに管理 —— クラスごとに唯一のインスタンスを作る (3) 1個だけ管理 —— クラス階層全体で唯一のインスタンスを作る リンク 更新履歴 ぜひ、感想をお送りください はじめに Singletonパターンのサブクラス化に関連したJavaのサンプルコードを紹介します。 このページを作成するにあたっては、GoFはもちろんのこと、 デザインパターン・メーリングリストでのメールのやりとりを参考にしました。 澤田聡司さん、小山さん、中野靖治さん、宮さん、杉村貴士さん、出井秀行さん、 その他のみなさんに感謝します。 特に、澤田さんから多くの情報と示唆をいただきました。感

  • Java におけるコード進化パターン (Code Evolution Patterns in Java)

    Java におけるコード進化パターン (Code Evolution Patterns in Java) asato shimotaki <asatohan at gmail.com> 最終更新日 : 2009/6/21 (2004/4/22 より) [...] For twenty years, I spent two or three hours a day looking at pairs of things -- buildings, tiles, stones, windows, carpets, figures, carvings of flowers, paths, seats, funiture, streets, paintings, fountains, doorways, arches, friezes -- comparing them, and asking my

  • DEVLOVE HangarFlight で話したスライド&ソースコード - かとじゅんの技術日誌

    12月18日 DEVLOVE HangarFlight - Winter Sortie -(東京都) で、「コードで学ぶドメイン駆動設計入門」と題してしゃべってきました。 スライドはこちら。http://slidesha.re/h0ffOI ソースコードはこちら。https://github.com/tricreo/schema-generator 休日にも関わらず、たくさんの方に足を運んでいただき、ありがとうございました! 会場にいなかった人もJavaで書いたDDDのサンプルコードとして参考にしていただければと思います。 また機会があれば、話したいと思います。

    DEVLOVE HangarFlight で話したスライド&ソースコード - かとじゅんの技術日誌
  • Web アプリの MVC 設計まとめ - もやし日記

    MVC 設計について考えていたときに、ちょうどその辺りの話をされている方々が居たので、今の考えをまとめてみました。 目次 前提 肥大化するコントローラを避ける ビジネスロジックをどこに書けば良いのか コントローラとモデルの間にもう一つの層があるとうまくいく? まとめ 前提対象は Web アプリケーションで、画面数(ビューの数)は数個〜100個程度の規模です。WordPressTwitter、37signals のサービスのようなものを作ろうとするとき、どういう MVC 設計をしていくかについて考えます。巨大なシステム、金融系システム、基幹系システムなどを作る場合とは異なる考え方もあると思います(そもそも MVC を使わない、など)。 肥大化するコントローラを避ける例えば、八百屋さんで「60円で仕入れたリンゴ1つを100円で売った」こと(Sales Transaction)を記録する場合を

  • dpinfo.html

    目次 はじめに Abstract Classパターン Abstract ClassパターンRuby版 (by 助田雅紀さん) Balkingパターン Before/Afterパターン Futureパターン FutureパターンRuby版 (by 助田雅紀さん) Generation Gapパターン Hook Operationパターン Hook OperationパターンRuby版 (by 助田雅紀さん) Immutableパターン Marker Interfaceパターン Monostateパターン MonostateパターンRuby版 (by 助田雅紀さん) MonostateパターンPerl版 (by 宮川さん) Null Objectパターン Null ObjectパターンとSingletonパターン Producer-Consumerパターン Sharableパターン Singl

  • サルでもわかる 逆引きデザインパターン 第1章 はじめてのデザインパターン はじめに:

    第1章 はじめてのデザインパターン はじめに デザインパターンとは 特集の構成 すぐわかるオブジェクト指向 すぐわかるUML おわりに 第2章 逆引きカタログ ロジック編 Singleton (シングルトン) Factory/Factory Method (ファクトリ/ファクトリメソッド) Strategy (ストラテジ) Composite (コンポジット) Visiter (ビジタ) 第3章 逆引きカタログ J2EE編 Template Method (テンプレートメソッド) Facade (ファサード) ViewHelper (ビューヘルパ) DAO (Data Access Object) 第4章 逆引きカタログ その他 ユーティリティクラス 実行時例外を標準的に使う Nullオブジェクト 第5章 デザインパターン適用の勘所 はじめに アプリケーションの仕様 リファクタリング前のサ

  • 杉浦とソフトウェア開発

    杉浦とソフトウェア開発 ダウンローダをお使いの皆様へ そういえば、秀和システム様より、筆者の「対戦型五目並べ」が、デザパタ入門書として「あなたのコードを[賢く]するデザインパターン Java プログラミング」というタイトルで出版されることになった。7月中旬に店頭に並ぶ予定である。定価は2800円と決まった。著者のクセにシレっと言ってしまうが、内容比だと相当にお買い得だな。ぜひぜひ買ってくれたまえ。より詳しくは→「あなたのコードを[賢く]するデザインパターン Java プログラミング」 私は古手のプログラマである。学生時代から、プログラマ以外のバイトをしたことがない。今まで書いたことのある言語というと、Basic, C, Fortran, Cobol, Scheme, C++, Java, Intel Assembler, Perl, Tcl/Tk, PostScript あたりか。あ、ほと

  • 「デザインパターンの使い方」連載一覧

    CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

    「デザインパターンの使い方」連載一覧
  • 1