Chapter 11: The Abstract Factory Pattern
Code Examples
TOC
TOC
TOC
Example 11-1: A Switch to Control Which Driver to Use
TOP
// JAVA CODE FRAGMENT
class ApControl {
. . .
public void doDraw() {
. . .
switch (RESOLUTION) {
case LOW:
// use lrdd
case HIGH:
// use hrdd
}
}
public void doPrint() {
. . .
switch (RESOLUTION) {
case LOW:
// use lrpd
case HIGH:
// use hrpd
}
}
}
Example 11-2: Using Polymorphism to Solve the Problem
TOP
// JAVA CODE FRAGMENT
class ApControl {
. . .
public void doDraw() {
. . .
myDisplayDriver.draw();
}
public void doPrint() {
. . .
myPrintDriver.print();
}
}
Example 11-3: Implementation of ResFactory
TOP
abstract class ResFactory {
abstract public DisplayDriver getDispDrvr();
abstract public PrintDriver getPrtDrvr();
}
class LowResFact extends ResFactory {
public DisplayDriver getDispDrvr() {
return new LRDD();
}
public PrintDriver getPrtDrvr() {
return new LRPD();
}
}
class HighResFact extends ResFactory {
public DisplayDriver getDispDrvr() {
return new HRDD();
}
public PrintDriver getPrtDrvr() {
return new HRPD();
}
}