抽象工厂模式(Abstract Factory)针对多个对象的情况,而工厂方法模式针对单一对象的情况。
- public class TestAbstractFactory {
- public static void main(String[] args) {
- //ui工厂
- GUIFactory fact=new SwingFactory();
- //通过fact工厂获取Frame组件
- Frame f=fact.getFrame();
- //通过fact工厂获取button组件
- Component c1=fact.getButton();
- //通过fact工厂获取text组件
- Component c2=fact.getTextField();
- }
- }
- //抽象工厂类
- abstract class GUIFactory{
- //定义可以获取button组件的抽象方法
- public abstract Component getButton();
- //定义可以获取text组件的抽象方法
- public abstract Component getTextField();
- //定义可以获取Frame组件的抽象方法
- public abstract Frame getFrame();
- }
- //SwingFactory 集成抽象工厂类,实现其中的方法
- class SwingFactory extends GUIFactory{
- public Component getButton() {
- //返回button组件对象
- return new JButton("Swing Button");
- }
- public Frame getFrame() {
- //返回frame组件对象
- return new JFrame("Swing Frame");
- }
- public Component getTextField() {
- //返回text组件对象
- return new JTextField(20);
- }
- }