Connie's Convenience Store - About Peter Coad
Connie's Convenience Store - About Peter Coad
Connie's Convenience Store - About Peter Coad
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
Establishing Responsibilities for Problem-Domain Objects Connie’s <strong>Convenience</strong> <strong>Store</strong> 45<br />
Register<br />
Establish responsibilities: “what I know.”<br />
What does a register object know? It knows its:<br />
– number (e.g., register number 2).<br />
Establish responsibilities: “who I know.”<br />
Who does a register object know? It knows its:<br />
– store (one)<br />
– session (zero or more)<br />
– cash drawer (one, in this system).<br />
(From the other direction, each session, and cash drawer knows its register. A store<br />
knows its registers, too.)<br />
Establish responsibilities: “what I do.”<br />
What does a register object do?<br />
It provides basic services (get, set, add, remove, delete).<br />
What else could it do?<br />
A register object knows its session objects. So it could do something across that<br />
collection of objects, something like this:<br />
– how much (money collected) over interval<br />
– how many (sales) over interval.<br />
Add register responsibilities to the model (Figure 1–29):<br />
Session<br />
<strong>Store</strong><br />
Register<br />
1 n<br />
number<br />
howManyOverInterval<br />
howMuchOverInterval<br />
1 1<br />
Figure 1–29: Register: “what I know; who I know; what I do.”<br />
n<br />
1<br />
CashDrawer