decorator pattern

Post on 23-Feb-2016

56 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

Decorator Pattern. Tujuan Pembelajaran. Mengetahui model persoalan yang menggunakan Decorator pattern Mengetahui bagaimana menerapkan Decorator pattern pada program Mampu menerapkan Decorator pattern untuk meningkatkan fleksibilitas kode. Koleksi Desain Pattern. - PowerPoint PPT Presentation

TRANSCRIPT

Jurusan Teknik InformatikaFakultas TeknikUniv. Muhammadiyah Malang

1

Decorator Pattern

Jurusan Teknik InformatikaFakultas TeknikUniv. Muhammadiyah Malang

2

Tujuan Pembelajaran• Mengetahui model persoalan yang

menggunakan Decorator pattern• Mengetahui bagaimana menerapkan

Decorator pattern pada program• Mampu menerapkan Decorator pattern untuk

meningkatkan fleksibilitas kode

Jurusan Teknik InformatikaFakultas TeknikUniv. Muhammadiyah Malang

3

Koleksi Desain Pattern• Creational Patterns :– Singleton– Factory

• Behavioural Patterns :– Strategy

–Decorator

Jurusan Teknik InformatikaFakultas TeknikUniv. Muhammadiyah Malang

4

Problem

Jurusan Teknik InformatikaFakultas TeknikUniv. Muhammadiyah Malang

5

Example : Starbuzz Coffee

Beverage

getDescription()cost()//other methods

description

Decafcost()

DarkRoastcost()

HouseBlendcost()

Espressocost()

Bgm jika kita ingin menambahkan pelengkap

pd kopi, misalnya steamed milk, soya,

mocha, dll ?

Jurusan Teknik InformatikaFakultas TeknikUniv. Muhammadiyah Malang

6

Alternatif Pertama

Beverage

getDescription()cost()//other methods

description

HouseBlendWithSteamedMilk

cost() HouseBlendWithMocha

cost()

DecafWithSoya

cost()

DecafWithSteamedMilk

cost()

HouseBlendWithSoya

cost() DecafWithMocha

cost()

EspressoWithSoya

cost()

Jurusan Teknik InformatikaFakultas TeknikUniv. Muhammadiyah Malang

7

Alternatif KeduaBeverage

getDescription()cost()

hasMilk()setMilk()hasSoya()setSoya()hasWhip()setWhip()hasMocha()setMocha()//other methods

descriptionmilksoyamilkwhip

Decafcost()

DarkRoastcost()

HouseBlendcost()

Espressocost()

Bgm jika terjadi perubahan harga dari

tiap pelengkap, penambahan jenis

pelengkap, bgm jika pelanggan ingin double

whip?

Jurusan Teknik InformatikaFakultas TeknikUniv. Muhammadiyah Malang

8

Prinsip Perancangan

Identify the aspects of your application that vary and separate them from what stays the same

Program to an interface not and implementation

Strive for loosely coupled designs between object that interact.

Favor composition over inheritance

Classes should open for extension, but closed for modification

Jurusan Teknik InformatikaFakultas TeknikUniv. Muhammadiyah Malang

9

Jurusan Teknik InformatikaFakultas TeknikUniv. Muhammadiyah Malang

10

Decorator Pattern

Jurusan Teknik InformatikaFakultas TeknikUniv. Muhammadiyah Malang

11

Menerapkan DecoratorMisalnya, pelanggan ingin secangkir Dark Roast ditambah Whip dan Mocha.

cost = …1. mocha.cost()2. mocha calls whip.cost()3. whip calls darkRoast.cost()4. darkRoast returns

$darkRoast5. whip returns ($darkRoast+

$whip)6. mocha returns ($darkRoast+

$whip+$mocha)

Jurusan Teknik InformatikaFakultas TeknikUniv. Muhammadiyah Malang

12

Properti Decorator Pattern

Jurusan Teknik InformatikaFakultas TeknikUniv. Muhammadiyah Malang

13

Class Diagram Decorator Pattern

Jurusan Teknik InformatikaFakultas TeknikUniv. Muhammadiyah Malang

14

• Terdapat dua tipe Mobil yaitu XenosA (155 jt) dan XenosB (141 jt). Pengguna mobil dapat memilih variasi untuk dipasang pada tiap tipe mobil. Variasi yang tersedia console box (175 rb), spoiler (500 rb), dan grill (280 rb). Buatlah program yang dapat menambahkan variasi secara dinamis ke tiap tipe mobil sekaligus menghitung total harganya. Gunakan Decorator Pattern untuk menyelesaikan persoalan di atas.

Latihan

top related