Mais conteúdo relacionado
Semelhante a 覚えて帰ろうJavaデザインパターン (20)
覚えて帰ろうJavaデザインパターン
- 1. Copyright © BizReach, Inc. All Right Reserved. 1
覚えて帰ろう
java デザインパターン
2015 年 03 月 27 日
株式会社ビズリーチ
プロダクトマーケティング本部
廣田 和也
- 3. Copyright © BizReach, Inc. All Right Reserved. 3
アジェンダ
デザインパターンとは
Template Method パターン
Strategy パターン
- 5. Copyright © BizReach, Inc. All Right Reserved. 5
デザインパターンとは
ソフトウェア開発におけるデザインパターンとは
過去のソフトウェア設計者が発見し編み出した
設計ノウハウを蓄積し、名前をつけ、
再利用しやすいように特定の規約に従って
カタログ化したものである。
引用元: wikipedia デザインパターン ( ソフトウェア )
- 6. Copyright © BizReach, Inc. All Right Reserved. 6
GoF (Gang of Four) のデザインパターン
GoF とはエーリヒ・ガンマ、リチャード・ヘルム
ラルフ・ジョンソン、ジョン・ブリシディースの
4 人のことで、書籍『オブジェクト指向における
再利用のためのデザインパターン』において
デザインパターンという用語を初めてソフトウ
ェア開発に導入し、同時に書籍の中で 23 種類の
パターンを取り上げた。
デザインパターンとは
- 7. Copyright © BizReach, Inc. All Right Reserved. 7
GoF のデザインパターン 23 種
Abstract Factory
Builder
Factory Method
Prototype
Singleton
Adapter
Bridge
Composite
Decorator
Facade
Flyweight
Proxy
デザインパターンとは
Chain of Responsibility
Command
Interpreter
Iterator
Mediator
Memento
Observer
State
Strategy
Template Method
Visitor
- 8. Copyright © BizReach, Inc. All Right Reserved. 8
少ない労力で良い設計ができる
• 車輪の再発明はしない
メンバーに少ない単語で正確に設計を伝えられる
• パターン名を伝えるだけで、その構造と振る舞いを瞬時に共有できる
覚えてうれしいこと
デザインパターンとは
- 12. Copyright © BizReach, Inc. All Right Reserved. 12
Template Method パターン
スーパークラスで処理の枠組みを定め、
サブクラスでその具体的内容を実装する。
どんなパターン?
- 13. Copyright © BizReach, Inc. All Right Reserved. 13
Template Method パターン
sample program
動物との遭遇
クラス図
登場人物
・ AbstractClass( 抽象クラス )
→AbstractAnimalEncounter
・ ConcreteClass( 具象クラス )
→DogEncounter,PigEncounter,CatEncounter
- 15. Copyright © BizReach, Inc. All Right Reserved. 15
Template Method パターン
流れが同一で詳細が異なる処理をまとめられる
呼び出し元でサブクラスを意識しなくてすむ
うれしいこと
- 17. Copyright © BizReach, Inc. All Right Reserved. 17
Strategy パターン
戦略( Strategy )=プログラミングにおける「アルゴリズム」
Strategy パターンでは、そのアルゴリズムを実装した部分がごっそ
り交換できるようになっている
17
どんなパターン?
- 18. Copyright © BizReach, Inc. All Right Reserved. 18
sample program
猫とのふれあい戦略
クラス図
Strategy パターン
登場人物
・ StrategyInterface( 戦略の役 )
→SkinshipStrategy
・ ConcreteStrategy( 具体的戦略 )
→StrokeStrategy,FeedStrategy,
SlapStrategy
・ Context( 文脈 )
→ApproachCatLogic
- 20. Copyright © BizReach, Inc. All Right Reserved. 20
戦略毎にクラスが別になるのでメンテナンスしやすい
• 戦略の切り替えが容易
• メソッドにとけこんだ形のアルゴリズムより、柔軟で修正しやすい
戦略の追加の際に呼び出しメソッドの修正が不要
アルゴリズムを動的に切り替える際に有用
• 実行環境での切り替え(ローカル、検証、本番)等
うれしいこと
Strategy パターン