20.02.2013 Views

Connie's Convenience Store - About Peter Coad

Connie's Convenience Store - About Peter Coad

Connie's Convenience Store - About Peter Coad

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!