デザインパターン勉強会

2,423 views

Published on

デザインパターンの基礎知識編として、2008/01/29 にアプレッソ社内向けに行った勉強会資料です。

0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
2,423
On SlideShare
0
From Embeds
0
Number of Embeds
27
Actions
Shares
0
Downloads
12
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

デザインパターン勉強会

  1. 1. デザインパターン勉強会 第一回 基礎知識編 吉田 哲也
  2. 2. デザインパターンとは <ul><li>ソフトウェアの 再利用性 や 柔軟性 を高めるための 達人たちの努力の結果 を 体系化 し 命名 したもの </li></ul><ul><li>つまりはオブジェクト指向のメリットを享受できる実装パターン </li></ul>
  3. 3. その前に… <ul><li>結合度 </li></ul><ul><ul><li>できる限り結合度を弱くすることで、 再利用性 や 柔軟性 が高くなる </li></ul></ul><ul><li>役割 </li></ul><ul><ul><li>本当に対象のクラスはその機能 ( メソッド ) を持つべきなのか? </li></ul></ul><ul><ul><ul><li>とりあえず機能が必要だからメソッドを実装しました… </li></ul></ul></ul><ul><ul><li>本当に対象のクラスはそのデータ ( フィールド ) を持つべきなのか? </li></ul></ul><ul><ul><ul><li>とりあえずデータが必要だからフィールドに持たせました… </li></ul></ul></ul>
  4. 4. is-a と has-a <ul><li>実装方法 </li></ul><ul><ul><li>is-a ( 継承 ) 、 has-a ( コンポジション ) </li></ul></ul><ul><li>結合度 </li></ul><ul><ul><li>is-a >> has-a </li></ul></ul><ul><li>役割 </li></ul><ul><ul><li>is-a は役割も継承する </li></ul></ul>
  5. 5. デザインパターンを学ぶ意義 <ul><li>再利用可能な、柔軟性の高い設計、実装 </li></ul><ul><li>コミュニケーション </li></ul><ul><li>など </li></ul>
  6. 6. 豆知識 <ul><li>Gang of Four (GoF) により体系化された </li></ul><ul><ul><li>Erich Gamma </li></ul></ul><ul><ul><ul><li>JUnit 共同開発者 (with Kent Beck) </li></ul></ul></ul><ul><ul><li>Richard Helm </li></ul></ul><ul><ul><li>Ralph Johnson </li></ul></ul><ul><ul><li>John Vlissides </li></ul></ul><ul><li>Design Patterns Elements of Reusable Object-Oriented Software (GoF 本 ) </li></ul><ul><li>GoF 本には 23 個のデザインパターンが記載されている </li></ul>
  7. 7. デザインパターンの使いどころ <ul><li>再利用性や拡張性が要求されるところ </li></ul><ul><ul><li>フレームワーク </li></ul></ul><ul><ul><li>複数バージョン対応アダプタ </li></ul></ul><ul><li>制約があり実装に工夫が必要なところ </li></ul><ul><ul><li>インタフェースは変えれないが… . </li></ul></ul><ul><ul><li>ライブラリだけ変更したいのだが… </li></ul></ul><ul><li>など </li></ul>
  8. 8. デザインパターンを使う流れ <ul><li>エッセンスを理解する </li></ul><ul><li>リファクタリングのときに使う </li></ul><ul><li>詳細設計のときに使う </li></ul><ul><li>自然と使う </li></ul>

×