0
点赞
收藏
分享

微信扫一扫

Java设计模式-抽象工厂模式

抽象工厂模式是一种创建型设计模式,它提供了一种方式,可以将一组具有同一主题的单独工厂封装起来。在抽象工厂模式中,每个工厂都能生产一组相关的产品,例如创建按钮、文本框等界面组件。

抽象工厂模式包含以下角色:

  1. 抽象工厂(Abstract Factory):提供一个创建产品的接口,用于创建具有共同主题的产品。
  2. 具体工厂(Concrete Factory):实现抽象工厂中的抽象方法,完成具体产品的创建。
  3. 抽象产品(Abstract Product):定义产品的规范,描述了产品的主要特性和功能。
  4. 具体产品(Concrete Product):实现了抽象产品角色所定义的接口,由具体工厂来创建,它们之间一一对应。

Java代码示例:

// 抽象产品接口
interface Button {
    void click();
}

// 具体产品A
class ButtonA implements Button {
    @Override
    public void click() {
        System.out.println("Button A clicked");
    }
}

// 具体产品B
class ButtonB implements Button {
    @Override
    public void click() {
        System.out.println("Button B clicked");
    }
}

// 抽象工厂接口
interface AbstractFactory {
    Button createButton();
}

// 具体工厂A
class ConcreteFactoryA implements AbstractFactory {
    @Override
    public Button createButton() {
        return new ButtonA();
    }
}

// 具体工厂B
class ConcreteFactoryB implements AbstractFactory {
    @Override
    public Button createButton() {
        return new ButtonB();
    }
}

// 客户端代码
public class Client {
    public static void main(String[] args) {
        AbstractFactory factoryA = new ConcreteFactoryA();
        Button buttonA = factoryA.createButton();
        buttonA.click(); // 输出:Button A clicked

        AbstractFactory factoryB = new ConcreteFactoryB();
        Button buttonB = factoryB.createButton();
        buttonB.click(); // 输出:Button B clicked
    }
}

举报

相关推荐

0 条评论