Java勉強会 第1回 デザインパターン オブジェクト指向とは 再利用性 カプセル化 多態性 データと操作 が一緒に なっている 八百屋とスーパーの例 八百屋とスーパーの違い スーパーはオブジェクト指向? 八百屋とスーパーの違い 八百屋さん この白菜・・・ 89円ね! 店員が野菜の値段を 知っている 八百屋とスーパーの違い 見ての通りスーパーの店員 白菜の値段? そんなの知らないね (僕は知ってます よー) レジが野菜の値段を知っ ている 八百屋とスーパーの違い スーパー 八百屋 レジやバーコードが 要らない 野菜の種類が増え ると大変 レジやバーコードが 必要 たくさんの商品を扱 える スーパーはオブジェクト指向? レジを違うスーパーにおい ても使用できる 異なるバーコードを読むた びに違う結果が出る 店員はレジの中で起こって いることを知らない 商品にバーコードが付いて いる(自分の情報をアウト プットしている) 再利用性 多態性 カプセル化 データと操作が 一緒になって いる デザインパターンとは? 「デザイン」とは設計のことです。デ ザイン(設計)パターンを使うと設計 が楽になります。(テンプレートを使う のと似ています) ラーメン屋さんが困っているようで す・・・ トッピングが豊富なことで人気のあるラーメン屋 さんがなにやら困っている様子です。 どうやら、トッピングが増えすぎで計算が大変に なり、お昼時は発狂しそうになるということです。 デザインパターンを使ってラーメン屋さんを助け てあげましょう。 注文システムを変更しよう 今までは会計時にトッピング一つ一つの値段を 計算し合計金額を割り出していました。 そこで、トッピングを追加する毎に値段を更新し、 会計時には合計金額がわかっている状態にしま しょう。 もう計算する必要 はないのね デコレーターパターン スーパークラスの値段と自分の値段を足し合わせる cost() cost() cost() Noodle Egg RoastPork クラスの中身 public class Noodle{ public class Egg extends Noodle{ private Noodle food; public int cost(){ public Egg(Noodle food){ return 400; this.food=food; } } } public int cost(){ return 100 + super.cost(); } } ラーメン屋さんも大喜び! このシステムのお陰でいくらでもトッピングを増 やすことができるようになりました。 アイディアが湯水のようにわい てくる! 次はケーキをトッピングに追加 だ!
© Copyright 2024 ExpyDoc