APITT - システム開発分野 - オブジェクト指向
「デザインパターン」
content
PBL
講師について
- 名前:宮里忍
- 所属:株式会社オーシーシー 営業統括本部 新技術支援部
- e-mail:shinobu@occ.co.jp
- mixi:.shinobu
講義の目標と目的
- デザインパターンを知る
- Java のある程度複雑なソースを読む
- 1.と2.によりオブジェクト指向の真髄を知る
- 抽象クラス(abstract class)はなんのために存在するの?
- インタフェース(interface)はなんのために存在するの?
- ポリモフィズム(polymorphism)とは?
講義の進め方
- テキスト(増補改訂版Java言語で学ぶデザインパターン入門)を読む
- サンプルプログラムを読む
- ちょくちょく質問しますので、可能であれば答えて下さい(答えられなくても一向に構いません)
- サンプルプログラムをEclipseで作成し、実行する
- テキスト中の問題を解く
スケジュール
- 2009年01月06日(Tue):Template Method パターン, Singleton パターン, Adapter パターン
- 2009年01月07日(Wed):Facade パターン, リファクタリング
(希望があれば、別のパターンで講義を進めることも可能です)
(時間が余ったり足りなかったりした場合はスケジュールを変更させて下さい)
講義時間
- 午前:09時00分から12時00分まで
- 午後:13時30分から16時30分まで
休憩
デザインパターンとは?
- プログラム設計時に起こる典型的な問題とそれに対する解決策を整理し、再利用できるようにまとめたもの。
- 1995年に出版された書籍「デザインパターン」の中で23のパターン(GoF:Gang of Four)が解説されたのをきっかけに広まった。
- 「デザインパターン」はC++で書かれていたが、「増補改訂版Java言語で学ぶデザインパターン入門」はGoFをJavaで書いている。
- GoF以外にも多くのデザインパターンが存在する
- MVC(Model View Controller)もデザインパターンの一種である。
- 再利用性が高く柔軟なソフトウェアを設計するための指針となる。
- パターンの名前は語彙(言葉、用語、キーワード)として使用することができ、意志疎通を容易にしてくれる。
Template Method パターン
Template Methodパターンからはこんなことが学べます。
- 抽象クラス(abstract class)はなんのために存在するの?
- ポリモフィズム(polymorphism)とは?
- スーパークラスとサブクラスの連係プレー
- 設計(者)と実装(者)の分業
Tag Jump 図
Singleton パターン
Singleton パターンからはこんなことが学べます。
- 仕様をプログラムで表現する
- 仕様が満たされる事を保証する
- インスタンス化(new)できないクラスを作る方法
Tag Jump 図
Adapter パターン
Adapter パターンからはこんなことが学べます。
- インタフェース(interface)はなんのために存在するの?
- ポリモフィズム(polymorphism)とは?
- 継承と委譲
- ラッパー(Wrapper)
Tag Jump 図(継承バージョン)
Tag Jump 図(委譲バージョン)
Proxy パターン
Proxy パターンからはこんなことが学べます。
- 必要になってからインスタンス化する
- 透過的なクラス
- 委譲
Tag Jump 図
Facade パターン
Facade パターンからはこんなことが学べます。
- 複雑な処理を簡単にみせる
- 1箇所にまとめる
Tag Jump 図
Factory Method パターン
Factory Method パターンからはこんなことが学べます。
- フレームワーク(Framework)
- Generics(J2SE 5.0 の新機能)
Tag Jump 図
パターン指向リファクタリング
パターン指向リファクタリング
SampleプログラムTagJump図
- Iterator
- Adaptersample1 sample2
- TemplateMethod
- FactoryMethod
- Singleton
- Prototype
- Builder
- AbstractFactory
- Bridge
- Strategy
- Composite
- Decorator
- Visitor
- Chain of Responsibility
- Facade
- Mediator
- Observer
- Memento
- State
- Flyweight (数字データ)
- Proxy
- Command
- Interpreter(補助教材)
参考リンク
おまけ
SampleプログラムHTMLTag
講義資料のダウンロード(6.4M)
PHPでデザインパターンダウンロード
content
- 講師について
- 講義の目標と目的
- 講義の進め方
- スケジュール
- デザインパターンとは?
- Template Method パターン
- Singleton パターン
- Adapter パターン
- Proxy パターン
- Facade パターン
- Factory Method パターン
- パターン指向リファクタリング
- SampleプログラムTagJump図
- 参考リンク
- おまけ