Design Patterns Java™ Workbook

(Michael S) #1
Appendix B. Solutions

Template Method (Chapter 21)...............................................................................................................


SOLUTION 21.1....................................................................................................................................


Your completed program should look something like:


package com.oozinoz.applications;
import java.util.;
import com.oozinoz.units.
;
import com.oozinoz.fireworks.*;
public class ShowComparator implements UnitConstants
{
public static void main(String[] args)
{
Rocket r1 = new Rocket(
"Mach-it", 22.95, (Length) METER.times(1000));
Rocket r2 = new Rocket(
"Pocket", 2.95, (Length) METER.times(12));
Rocket r3 = new Rocket(
"Sock-it", 9.95, (Length) METER.times(100));
Rocket r4 = new Rocket(
"Sprocket", 3.95, (Length) METER.times(50));


List rockets =
Arrays.asList(new Rocket[] { r1, r2, r3, r4 });


Comparator c = new Comparator()
{
public int compare(Object o1, Object o2)
{
Rocket r1 = (Rocket) o1;
Rocket r2 = (Rocket) o2;
double apogee1 =
r1.getApogee().getMagnitude();
double apogee2 =
r2.getApogee().getMagnitude();
return (int) (apogee1 - apogee2);
}
};


Collections.sort(rockets, c);
Iterator i = rockets.iterator();
while (i.hasNext())
{
System.out.println(i.next());
}
}
}


SOLUTION 21.2....................................................................................................................................


The code for markMoldIncomplete() passes the information about an incomplete mold
to the material manager:

Free download pdf