Connie's Convenience Store - About Peter Coad
Connie's Convenience Store - About Peter Coad
Connie's Convenience Store - About Peter Coad
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
Applying Patterns: Establish Problem-Domain Responsibilities Connie’s <strong>Convenience</strong> <strong>Store</strong> 59<br />
Progress at this point<br />
You’ve now selected objects and established responsibilities for the problem domain<br />
objects.<br />
Here’s your progress at this point (Figure 1–38):<br />
ProblemDomain Person<br />
AuthorizedPayment<br />
Cash<br />
CashDrawer<br />
Cashier<br />
Charge<br />
Check<br />
Item<br />
Payment<br />
Person<br />
PromoPrice<br />
Register<br />
ReturnLineItem<br />
Sale<br />
SaleLineItem<br />
Session<br />
<strong>Store</strong><br />
TaxCategory<br />
Cash<br />
cashTendered<br />
Payment<br />
amount<br />
Session<br />
startDate<br />
startTime<br />
endDate<br />
endTime<br />
Check<br />
bankRoutingNumber<br />
accountNumber<br />
amtTendered<br />
1<br />
1 n<br />
name<br />
address<br />
phone<br />
Cashier<br />
number<br />
password<br />
authorizationLevel<br />
currentSession<br />
isAuthorized<br />
assessPerfOverInterval<br />
howManyOverInterval<br />
howMuchOverInterval<br />
1<br />
1<br />
1<br />
n<br />
1 n<br />
number<br />
name<br />
n 1<br />
1<br />
AuthorizedPayment<br />
authorizationCode<br />
authorize<br />
Charge<br />
cardNumber<br />
cardType<br />
expirationDate<br />
Figure 1–38: Progress at this point.<br />
n<br />
Sale<br />
date<br />
time<br />
calcSubTotal<br />
calcDiscount<br />
calcTax<br />
calcTotal<br />
commit<br />
howManyOverInterval<br />
howMuchOverInterval<br />
1-n<br />
1<br />
1<br />
SaleLineItem<br />
quantity<br />
taxStatus<br />
calcSubTotal<br />
howManyOverInterval<br />
1<br />
ReturnLineItem<br />
salePrice<br />
returnPrice<br />
reasonCode<br />
saleDate<br />
n<br />
<strong>Store</strong><br />
getItemForUPC<br />
getCashierForNumber<br />
n<br />
n<br />
Register<br />
howManyOverInterval<br />
howMuchOverInterval<br />
number<br />
description<br />
n<br />
n<br />
1 1<br />
Item<br />
getPriceForDate<br />
howManyOverInterval<br />
howMuchForQty<br />
1<br />
n<br />
1<br />
Price<br />
price<br />
effectiveDate<br />
PromoPrice<br />
expirationDate<br />
n<br />
n n<br />
n 1<br />
CashDrawer<br />
operationalState<br />
position<br />
balance<br />
open<br />
TaxCategory<br />
category<br />
rate<br />
effectiveDate<br />
upc<br />
UPC