抽象工厂模式
public interface Button {
public void Paint();
}
public interface CheckBox {
public void paint();
}
public class MacButton implements Button{
@Override
public void Paint() {
System.out.println("mac的按钮很美观");
}
}
public class MacCheckBox implements CheckBox{
@Override
public void paint() {
System.out.println("mac的复选框很精致");
}
}
public abstract class GUIFactory {
public abstract Button createButton();
public abstract CheckBox createCheckBox();
}
public class WindowsCreater extends GUIFactory{
@Override
public Button createButton() {
return new WindowButton();
}
@Override
public CheckBox createCheckBox() {
return new WindowsCheckBox();
}
}
public class Application {
private GUIFactory guiFactory;
private Button button;
private CheckBox checkBox;
public Application(GUIFactory guiFactory) {
this.guiFactory = guiFactory;
this.ButtonPaint();
this.CheckBoxPaint();
}
public void ButtonPaint(){
this.button=guiFactory.createButton();
button.Paint();
}
public void CheckBoxPaint(){
this.checkBox=guiFactory.createCheckBox();
checkBox.paint();
}
}
GUIFactory creater = new WindowsCreater();
new Application(creater);