例如,有一个Button
类表示按钮,另有它的两个子类WinButton
和MacButton
分别代表Windows和Mac风格的按钮,那么这几个类和用于创建它们的工厂类在Java中可以如下实现(在此省略所有类和方法的可见性设置):
//几个Button类 class Button{ /* ...*/} class WinButton extends Button{ /* ...*/} class MacButton extends Button{ /* ...*/}//它们的工厂类 interface ButtonFactory{ abstract Button createButton(); } class WinButtonFactory implements ButtonFactory{ Button createButton(){ return new WinButton();} } class MacButtonFactory implements ButtonFactory{ Button createButton(){ return new MacButton();} }