23.07.2012 Views

Design Patterns Explained

Design Patterns Explained

Design Patterns Explained

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.

246 Part V • Handling Variations with <strong>Design</strong> <strong>Patterns</strong><br />

Example 15-1 Java Code Fragment: Decorator<br />

class SalesTicket extends Component<br />

{ public void prtTicket () {<br />

// sales ticket printing code here<br />

}<br />

abstract class Decorator extends Component<br />

{ private Component myComp; public Decorator<br />

(Component myC) { myComp= myC;<br />

}<br />

public void prtTicket () { if<br />

(myComp != null)<br />

myComp.prtTicket(); }<br />

}<br />

class Headerl extends Decorator<br />

{ public void prtTicket () {<br />

// place printing header 1 code here<br />

super.prtTicket(); } }<br />

class Header2 extends Decorator<br />

{ public void prtTicket () {<br />

// place printing header 2 code here<br />

super.prtTicket(); } }<br />

class Footerl extends Decorator<br />

{ public void prtReport ()<br />

{ super.prtTicket();<br />

// place printing footer 1 code here } }<br />

class Footer2 extends Decorator<br />

{ public void prtReport ()<br />

{ super.prtTicket();<br />

// place printing footer 2 code here } }<br />

class SalesOrder { void<br />

prtTicket () {<br />

(continued)

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

Saved successfully!

Ooh no, something went wrong!