Paskaitų konspektai - Matematikos ir Informatikos fakultetas ...
Paskaitų konspektai - Matematikos ir Informatikos fakultetas ...
Paskaitų konspektai - Matematikos ir Informatikos fakultetas ...
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
Customer<br />
1 *<br />
Rental<br />
*<br />
1<br />
Movie<br />
name: string<br />
printStatement()<br />
daysRented: int<br />
title: string<br />
priceCode: int<br />
Smulkesn÷s detal÷s pateikiamos Faulerio knygoje. Beje, tokiai paprastutei<br />
program÷lei šis dizainas puikiausiai tinka. Ir nors iš klasių diagramos sunku<br />
pamatyti, tačiau visgi ats<strong>ir</strong>anda tam tikrų problemų, kuomet mes užsimanome naujų<br />
dalykų:<br />
• ataskaitos ne tik tekstiniame, bet <strong>ir</strong> HTML formate<br />
• laisvai kaitaliojamos filmų kainų politikos <strong>ir</strong> nuolaidų skaičiavimo dažniems<br />
videotekos klientams nuomuojantis naują filmą (užd<strong>ir</strong>btų taškų skaičius)<br />
Fauleris parodo, kaip žingsnis po žingnio pertvarkyti šią diagramą lydintį kodą <strong>ir</strong><br />
gauti naują klasių hierarchiją:<br />
Customer<br />
1 *<br />
Rental<br />
*<br />
1<br />
Movie<br />
name: string<br />
daysRented: int<br />
title: string<br />
printStatement()<br />
printHTMLStatement()<br />
getTotalCharge()<br />
getTotalFrequentRenterPoints()<br />
getCharge()<br />
getFrequentRenterPoints()<br />
getCharge(days: int)<br />
getFrequentRenterPoints(days: int)<br />
Price<br />
1<br />
getCharge(days: int)<br />
getFrequentRenterPoints(days: int)<br />
RegularPrice<br />
ChildrenPrice<br />
NewReleasePrice<br />
getCharge(days: int)<br />
getCharge(days: int)<br />
getCharge(days: int)<br />
getFrequentRenterPoints(days: int)<br />
Kaip sako Fauleris: svarbiausia pertvarkymo ritmas - mažas pakeitimas, testas,<br />
mažas pakeitimas, testas <strong>ir</strong> t.t..<br />
144