.png)
interface Button {
}
interface TextArea {
}
class WindowButton implements Button {
}
class LinuxButton implements Button {
}
class WindowTextArea implements TextArea {
}
class LinuxTextArea implements TextArea {
}public interface IGuiFactory {
// 产品Button创建方法
Button createButton();
// 产品TextArea创建方法
TextArea createTextArea();
// 有n个产品等级,就n个创建方法
}
class LinuxGuiFactory implements IGuiFactory {
@Override
public Button createButton() {
return new LinuxButton();
}
@Override
public TextArea createTextArea() {
return new LinuxTextArea();
}
}
class WindowsGuiFactory implements IGuiFactory {
@Override
public Button createButton() {
return new WindowButton();
}
@Override
public TextArea createTextArea() {
return new WindowTextArea();
}
} 客户端代码:public class Client {
public static void main(String[] args) {
// 为了演示,使用new方式创建工厂,最好做成单例的或先初始化好
IGuiFactory factory = new WindowsGuiFactory();
Button button = factory.createButton();
TextArea textArea = factory.createTextArea();
System. out.println(button);
System. out.println(textArea);
}
}设计模式学习03—抽象工厂模式,布布扣,bubuko.com
原文地址:http://blog.csdn.net/xuepiaohan2006/article/details/28413445