120 likes | 431 Views
GOF デザインパターン入門. 対象となる方. デザインパターン?なにそれ 聞いた事はあるけど・・・ 今ひとつ使い所が判らない UML が読めなくて・・・. デザインパターンとは(なんなのか). GOF (ギャング・オブ・フォー)が編み出したソフトウェア開発を行う上での設計パターン 設計というが、実装により近い部分で適用するもの オブジェクト指向言語による開発時の問題に対するアプローチに名付けを行ったもの. パターンの種類( 1/2 ). Abstract Factory Builder Factory Method Prototype Singleton
E N D
対象となる方 • デザインパターン?なにそれ • 聞いた事はあるけど・・・ • 今ひとつ使い所が判らない • UMLが読めなくて・・・
デザインパターンとは(なんなのか) • GOF(ギャング・オブ・フォー)が編み出したソフトウェア開発を行う上での設計パターン • 設計というが、実装により近い部分で適用するもの • オブジェクト指向言語による開発時の問題に対するアプローチに名付けを行ったもの
パターンの種類(1/2) • Abstract Factory • Builder • Factory Method • Prototype • Singleton • Adapter • Bridge • Composite • Decorator • Facade • Flyweight • Proxy • Chain of Responsibility • Command
パターンの種類(2/2) • Template Method • Visitor • Interpreter • Iterator • Mediator • Memento • Observer • State • Strategy
使うとどうなるのか • 使う、というよりはパターンに当て嵌める、の方が近い • 同じような問題は誰しもが問題視してきた • 誰もが似たような結論に至った • この問題にはこのパターンで解決してみては?という提案
パターン(Singleton) • そのクラスのインスタンスが1つである事を保証する • 1つでないといけない事情 • Static変数で値を持つ事との違い
パターン(Flyweight) • 同じインスタンスは共有し、メモリ消費量を低減させる • データベースの、マスタを思い浮かべて…
パターン(Strategy) • アルゴリズムを交換可能にする。
Strategyの例(Struts) アプリケーションサーバ • Strutsに於けるActionServletは、リクエストによってActionクラスを切り替える。 ブラウザ コントローラ部 処理 振り分ける 処理 処理
Strategyの例(Runnable) ①Threadオブジェクトにセット インタフェース Runnable を実装したオブジェクト Threadオブジェクト ②スレッドを開始すると、 Runnableのrunが呼ばれる。 ThreadにセットするRunnableを入れ替える事で処理が切り替わる。 run()