タグ

デザインパターンに関するchibahiroのブックマーク (7)

  • IBM Developer

    IBM Developer
  • Effective Java の Builderパターンとその拡張 - がくぞーのメモ

    Effective Java 第2版 (The Java Series) 作者: Joshua Bloch,柴田芳樹出版社/メーカー: ピアソンエデュケーション発売日: 2008/11/27メディア: 単行(ソフトカバー)購入: 77人 クリック: 936回この商品を含むブログ (264件) を見る ちょいと前から Effective Java 第二版の読書会的なものをやってます。 その中で Builderパターンが非常に美しいね、という話になりました。 Builderパターンとは数多くのパラメータを持つオブジェクトの生成に関するパターンです。 オブジェクト生成に通常のコンストラクタを使用する場合、パラメータ間の整合性は保てますが、数が多いと引数の順番を知っている必要があり書きづらく読みづらいコードになります。 それ以外でよく使われるのが JavaBeansパターンです。 デフォルトコン

    Effective Java の Builderパターンとその拡張 - がくぞーのメモ
  • enumをもうちょっと使う - しげるメモ

    enum basics - しげるメモで基的なことをおさらいしたので、私がよく使ってるenum関係のパターンをいくつか。 ステートパターンをenumで enumを使うようになってまず一番変わったのが、 private static final int SOME_STATE = 1; みたいな典型的なアンチパターンを書かなくなりました。これはステートパターンを非常に書きやすくなったためだと思います。 よくこんなコード書いてます。当はもうちょっとロック処理とかを書かないとだめですが、ステート部分は大抵こんな感じです。 public class Lifecycle { // 初期状態はINITIALに固定 private State state = State.INITIAL; // 外側に公開する状態遷移メソッド public void start() { state = state.st

    enumをもうちょっと使う - しげるメモ
  • Visitorパターンで使われている"ダブルディスパッチ"とは? - Pixel Pedals of Tomakomai

    Wikipediaのダブルディスパッチの解説が、とてもいいこと書いてあるんですがどうもわかりにくかったので、Javaで簡潔に書き直してみました。 概要 メソッドのオーバーロードでは昔以下で書いたように動的なメソッド選択ができません。 オーバーロードはコンパイル時にメソッドが選択、つまり、変数の宣言されている型で判断されているようです。 オーバーロードとオーバーライドの混沌 ダブルディスパッチによって、オーバーロードされたメソッドをruntimeに動的に選択できるようになります。 ダブルディスパッチで解決できる問題例 次のようなコードを書くと、適切なexecuteが呼べません(コンパイルできない)。これは、メソッドのオーバロードは静的に評価されるためです。 interface MyClassB {} class MyClassB1 implements MyClassB {} class M

    Visitorパターンで使われている"ダブルディスパッチ"とは? - Pixel Pedals of Tomakomai
  • Strategic Choice

    Problemこのクラスは大きすぎて、もうこれ以上大きくしたくありません。「単一責務の原則」を適用してクラスを分割しようと思います。分割の具体的な方法がわかりません。Strategy「クラスの抽出」を適用します。どんなとき?「単一責務の原則」を適用してクラスを分割しようと思います。責務を把握したので、分割の実装を行いますが、具体的な方法がわかりません。どうする?「クラスの抽出」リファクタリングを適用します。ほとんどのレガシーシステムにおいて、最初にできることは、「実装レベル」で単一責務の原則を適用することです。つまり、大きなクラスから「クラスの抽出」をして、抽出クラスに委譲することです。「インタフェースレベル」で単一責務の原則を導入するには、より多くの作業が必要です。クラスの呼び出し側を変更しなければならず、テストも必要になります。まず、実装レベルで単一責務の原則を導入しておくと、将来イン

  • まつもと直伝 プログラミングのオキテ 第8回

    今回はソフトウエア設計に登場するパターンをまとめたものである「デザイン・パターン」について学びましょう。ソフトウエア設計において適切なデザイン・パターンをカタログから選び出すことで,複雑なプログラムでも効率良く設計できるようになります。 デザイン・パターンは設計上繰り返し登場するパターンを指すプログラミング用語です。元々は建築においてさまざまな建築物や街のデザインに共通して用いられる意匠や構成の組み合わせを意味するために使われていました。建築界においても,比較的近年になって使われ始めた言葉です。デザイン・パターンという考え方はChristopher Alexander氏が著書『The Timeless Way of Building』(Oxford University Press,1979)の中で初めて紹介したのだそうです。 通常,建築物は一つひとつ設計が異なり,また用途や建築条件などの

    まつもと直伝 プログラミングのオキテ 第8回
  • capsctrl - DesignPatternsInRuby

    kdmsnr Rails勉強会でDesignPatternsInRubyのまとめって需要あんのかな。時間内けど。05:08 PM January 17, 2008 lchin @kdmsnr ある。良書だと聞いたし。 05:13 PM January 17, 2008 shachi @kdmsnr ある。良い。 05:16 PM January 17, 2008 poppen @kdmsnr 聞きたいっす 05:20 PM January 17, 2008 kakutani @kdmsnr ぼくが聞きたいです! 05:48 PM January 17, 2008 良書なの??? 2007/12/XX Addison Wesley Professional $44.99 / ¥5,824 384ページ Patterns and Ruby ... Pattern入門、Ruby入門 Patte

  • 1