Factory Method
Example - Multi-platform UI
interface Dialog {
void show();
}
abstract class AbstractDialog implements Dialog {
abstract TextField createTextField();
abstract Button createButton();
}
class MacDialog extends AbstractDialog {
@Override
public void show() {
createTextField();
createButton();
}
@Override
TextField createTextField() {
return new MacTextField();
}
@Override
Button createButton() {
return new MacButton();
}
}
class WindowsDialog extends AbstractDialog {
@Override
public void show() {
createTextField();
createButton();
}
@Override
TextField createTextField() {
return new WindowsTextField();
}
@Override
Button createButton() {
return new WindowsButton();
}
}
interface TextField {
}
class MacTextField implements TextField {
}
class WindowsTextField implements TextField {
}
interface Button {
}
class MacButton implements Button {
}
class WindowsButton implements Button {
}Example - Factory method with Template pattern
Last updated