タグ

Javaとgofに関するkiyo_hikoのブックマーク (12)

  • デザインパターン検出ツール Tsantalis

    Tsantalisというデザインパターン検出ツールが「edubase Stream ソフトウェアパターン第9回ツール活用」で紹介されていた。 Tsantalis デザインパターン検出ツールとは、既存のソフトウェアについて既知のパターンが適用されているかどうかを検出するツール。 既存のプログラムの理解を容易にし、プログラムを修正しやすくなる。 TsantalisはJavaのクラスファイル集合から12のGoFデザインパターンを検出する。 複数のデザインパターンの重ね合わせを扱うことができ、軽快で精度がいい。 割り切れば使える、とのこと。 Tsantalisが検出する仕組みは、対象ソフトウェアをグラフ化し、既知デザインパターンのグラフが含まれるかを判定する。 部分グラフの同型判定問題である。 規模の大きいJavaプログラムを読む時には、試してみる価値がありそうだ。

    デザインパターン検出ツール Tsantalis
    kiyo_hiko
    kiyo_hiko 2014/12/05
    さきほど何かの本でやっぱりデザインパターンを自動検出するツールがあるというのを知ったが、このブログで紹介されているTsantalisっぽい
  • Java開発者必修! ソフトウェア・パターン専科 ソフトウェア・パターンへのいざない | ウルシステムズ株式会社

    はじめに ソフトウェア・パターンという言葉を聞いたことがあるだろうか。ソフトウェア・パターンの中ではデザイン・パターンが有名であり、すでに実際の開発現場で適用されている方も多いと思われる。 デザイン・パターン以外にも多くのソフトウェア・パターンが存在しているのだが、残念ながら、デザイン・パターン以外のパターンについてはあまりよく知らないという方が多いのではないだろうか。 ソフトウェア・パターンに関する知識は、我々ソフトウェア開発者にとって、今後ますます重要になってゆくであろう。 連載では、ソフトウェア・パターンについて学びたい読者や、デザイン・パターンは知っているけれど他のパターンについてはあまり知らないという読者を対象に、さまざまなソフトウェア・パターンについて解説していく予定だ。 ソフトウェア・パターンとは そもそも、ソフトウェア・パターンとは何だろうか。ひと言でいえば、ソフトウェア

    Java開発者必修! ソフトウェア・パターン専科 ソフトウェア・パターンへのいざない | ウルシステムズ株式会社
    kiyo_hiko
    kiyo_hiko 2012/12/19
    Yes OCPちょう大事
  • Yohta's Object World ~YOHTAのオブジェクト指向研究 デザインパターン・UML などなど~

    Yohta's Object World Study of Design Pattern Mastering Unified Modeling Language. Study of Design Pattern デザインパターンの骸骨たち (RE-BONE ) with C デザインパターンにC言語版を追加! (2009.2.28) デザインパターンの塗り薬 Sample Application for GOF's Design Pattern COMMANDを追加!(2004.5.29) jjtree(JavaCC)で、Visitorパターンをマスター 第八回修正 (2011.12.29) Special Issue C++ビギナーに捧ぐ EffectiveC++入門 フレッシュマン特集(2005.03.16) AMIGO FOR Win32 (Win32プログラミングのお助けクラス達)

  • Index of /commons/logging/source

    kiyo_hiko
    kiyo_hiko 2012/03/04
    Apache commons loggingのソースコード。実践的なAdapterパターンのお勉強に
  • Iterator Interface

    Iteratorインタフェースはコレクションの要素を先頭から1つづつ、シーケンシャルにアクセスするためのインタフェースです。GoFのデザインパターンのイテレータパターンに対応しており、その特徴は コレクションの内部表現を公開せずに、要素にアクセスできる ことにあります。このため、Iteratorインタフェースをインプリメントしたクラスやその要素数、要素の保持方法などによらずに統一したインタフェースで要素にアクセスすることができます。 Iteratorインタフェースなので、そのまま生成することはできません。生成にはCollectionインタフェースのiteratorメソッドを使用します。 CollectionインタフェースはListインタフェースやSetインタフェースのスーパーインタフェースなので、これらのインタフェースでも使用することができます。 コレクションのシーケンシャルアクセス It

    kiyo_hiko
    kiyo_hiko 2011/12/06
    Perlでシーケンシャルアクセスさせるためのクラスを発明するので参考に
  • Amazon.co.jp: Javaデザインパターン徹底攻略 (標準プログラマーズライブラリ): 日立ソフトウェアエンジニアリングインター: 本

    Amazon.co.jp: Javaデザインパターン徹底攻略 (標準プログラマーズライブラリ): 日立ソフトウェアエンジニアリングインター: 本
    kiyo_hiko
    kiyo_hiko 2011/10/07
    最終章「デザインパターンの難しさを理解する」・・・興味深い
  • Javaでも。

    ■Design Patterns 2004.11.16 Design Pattern ことはじめ 2004.12.15 Factory Method パターン 2005.01.31 Abstract Factory パターン 2004.11.30 Singleton パターン 2004.11.23 Templete Method パターン ■Jakarta Commons DbUtils version1.0 2004.07.27 DbUtils の機能概要 2004.05.19 DbUtils クラス 2004.05.20 QueryLoader クラス 2004.05.23 QueryRunner クラス 2004.05.26 ResultSetHandler インタフェース 2004.05.29 StringTrimmedResultSet クラスと SqlNullCheckedRe

  • StateパターンとStrategyパターンは何が違うのか考える | Tricorn Tech Labs

    最近、物欲に目覚めてしまってAmazonでいろいろ買ってたら、今月の請求が7万を超えて素に戻ってしまった戸田です。 ちょっとbluetoothデバイスに凝り始めてしまって…。(汗) さて、オブジェクト指向設計のバイブルと言えば、いわずと知れたGoF(オブジェクト指向における再利用のためのデザインパターン、Erich Gamma, Ralph Johnson, Richard Helm, John Vlissides著、ソフトバンククリエイティブ刊)です。 ここで紹介されている23のパターンはどれも小手先のテクニックではなく、エッセンスが抽出されており応用範囲が広いものばかりです。 なによりも今まで暗黙知になりがちな、設計の定石・パターンに共通の名称(言語)を与えて、名称による概念の共有ができるようになったという功績は計り知れません。 もちろん、KREISELにおいてもこれらのパターンを活

    StateパターンとStrategyパターンは何が違うのか考える | Tricorn Tech Labs
    kiyo_hiko
    kiyo_hiko 2011/05/20
    StateとStrategyの違い。両者とも煩雑な分岐を避けるという効果は共通:分岐はオブジェクトでも、式ですらないからオブジェクト指向的にはノイズっぽい。Stateはオブジェクトが動的に切り替わる性質が強調されるんですね。
  • Factory Method パターンの利点

    #3です。 自信なし。 --- (たぶん)最重要な側面(のうちの1つ)を書き忘れてました。 前述の「CollectionとIterator」の例で言うと、 sunのJDKについてくる「標準クラスライブラリとしてのCollection」は、 Vectorだったり、LinkedListだったり、 その他いろいろ、 いくつか「すでに存在」していると思うのですが、 ここで、「sunの標準ライブラリに存在しない、 自分オリジナルのCollection、MySupecialListというのを作りたい!」 と思ったとします。さらに 「このMySupecialListに合うIteratorは、 既存のsun標準ライブラリのIteratorの中には見当たらず、 これも自作するほかないんだよな~」 というケース。 いわば、 『"プラグインな"Collectionを使う時』 です。 このケースでは、 自作者は単

    Factory Method パターンの利点
    kiyo_hiko
    kiyo_hiko 2011/05/19
    「継承はそのツリー構造内でカプセル化が破られるという弱点があるため、現在は継承は極力使わず、インターフェースを実装する」
  • 4. FactoryMethod パターン

    2012/04/26 一部修正しました デザインパターン 4章 FactoryMethod パターン 4.1 FactoryMethodパターンとは 4.2 サンプルケース 4.3 FactoryMethod パターンのまとめ 4.1 FactoryMethodパターンとは 第4章では、FactoryMethod パターンを紹介します。FactoryMethod パターンは、オブジェクトの生成方法に一工夫加えることで、より柔軟にオブジェクトを生成することを目的とするものです。FactoryMethod パターンでは、インスタンスの生成をサブクラスに行わせることで、より柔軟に生成するインスタンスを選択することが可能となります。 オブジェクトを生成する場合、下記のように記述するのが普通です。 Product product = new Product(); しかし、このようなオブジェクト生成方

    kiyo_hiko
    kiyo_hiko 2011/04/20
    「先生、僕は木じゃなくて芋に彫りたい」
  • - デザインパターンによる進化的設計

    このプログラムでは全体の処理の流れが決まっています. その中で,youGotMailPopup()の部分のみの動作が変更できることが望まれています. ここで利用できるパターンを考えてみます.振舞に分類されるパターンのなか で,TemplateMethod と呼ばれるパターンがあります.GoFを参照すると, TemplateMethod 目的: 1つのオペレーションにアルゴリズムのスケルトンを定義しておき,そ の中のいくつかのステップについてはサブクラスでの定義に任せることにする. TemplateMethodパターンでは,アルゴリズムの構造を変えずに,アルゴリズ ムの中のあるステップをサブクラスで再定義する. とあります.今回の例では,全体の処理の流れを規定するrun()メソッドが上 記の「スケルトン」に当たります.また,youGotMailPopup()が「いくつかの ステップ」に当ては

  • Amazon.co.jp: デザインパターンとともに学ぶオブジェクト指向のこころ (Software patterns series): アラン・シャロウェイ, ジェームズ・R・トロット, 村上 雅章: 本

    Amazon.co.jp: デザインパターンとともに学ぶオブジェクト指向のこころ (Software patterns series): アラン・シャロウェイ, ジェームズ・R・トロット, 村上 雅章: 本
    kiyo_hiko
    kiyo_hiko 2011/04/11
    Bridgeパターンの説明がすぐれてるらしい
  • 1