美文网首页
Java抽象工厂模式

Java抽象工厂模式

作者: Retree | 来源:发表于2019-06-27 16:39 被阅读0次

存在Shape,Color两个工厂
这两个工厂又继承抽象类AbstractFactory。
自上而下

先创建顶层抽象工厂:AbstractFactory.java,有两个抽象方法,传一个String参数,返回Shap/Color对象

public abstract class AbstractFactory {
    abstract Shape getShape(String shape);
    abstract Color getColor(String color);

}

然后创建ShapeFactory.java和ColorFactory.java,继承AbstractFactory.java。根据不同的传参返回不同的Shape/Color。

public class ShapeFactory extends AbstractFactory {
    @Override
    Shape getShape(String shape) {
        switch (shape){
            case "Circle":{
                return new Circle();
            }
            case "Square":{
                return new Square();
            }

        }

        return null;
    }

    @Override
    Color getColor(String color) {
        return null;
    }
}



public class ColorFactoyr extends AbstractFactory {

    @Override
    Shape getShape(String shape) {
        return null;
    }

    @Override
    Color getColor(String color) {
        switch (color){
            case "Red":{
                return new Red();
            }

            case "Green":{
                return new Green();
            }
        }
        return null;
    }
}

创建两个接口Shape.java和Color.java,给Shape接口一个draw()方法,给Color接口一个fill()方法

public interface Shape {
    void draw();
}

public interface Color {
    void fill();
}

创建Shape和Color的实现类

public class Square implements Shape {

    @Override
    public void draw() {
        System.out.println("drawing square...");
    }
}
public class Circle implements Shape {
    @Override
    public void draw() {
        System.out.println("drawing circle....");
    }
}

-------------------------------------------------------------------
public class Green implements Color{

    @Override
    public void fill() {
        System.out.println("filling green...");
    }
}

public class Red implements Color{

    @Override
    public void fill() {
        System.out.println("filling red...");
    }
}

这样就完成了抽象工厂模式,就是有一个抽象类用来生成工厂类,最后写一个测试方法验证下

public class AbstractFactoryTest {
    public static void main(String[] args) {

        AbstractFactory shapeFactory = new ShapeFactory();
        Shape shape = shapeFactory.getShape("Circle");
        shape.draw();

        AbstractFactory colorFactory = new ColorFactoyr();
        Color color = colorFactory.getColor("Red");
        color.fill();


        }
    }

相关文章

  • Java与模式

    《JAVA与模式》之简单工厂模式《JAVA与模式》之工厂方法模式《JAVA与模式》之抽象工厂模式

  • 设计模式系列-抽象工厂模式

    JAVA设计模式系列: 单例模式 观察者模式 模板方法模式 简单工厂模式 抽象工厂模式 抽象工厂模式 定义 抽象工...

  • Java设计模式教程

    Java设计模式教程 Java工厂设计模式 Java抽象工厂模式 Java单例模式 Java建造者(Builder...

  • 代码段简单学习设计模式 -- 抽象工厂模式

    《JAVA与模式》之抽象工厂模式 大话设计模式 抽象工厂模式(Abstraci Factory): 提供一个创...

  • java设计模式

    一、《JAVA与模式》之工厂方法模式 二、《JAVA与模式》之抽象工厂模式 三、《JAVA与模式》之单例模式 四、...

  • 工厂模式(Factory Pattern)

    概述 工厂模式(Factory Pattern)包括简单工厂模式、工厂方法模式和抽象工厂模式,是 Java 中最常...

  • Java设计模式系列-抽象工厂模式

    原创文章,转载请标注出处:《Java设计模式系列-抽象工厂模式》 一、概述 抽象工厂模式是对工厂方法模式的再升级,...

  • 抽象工厂模式(选择产品簇)

    目录 回顾众多工厂模式 抽象工厂模式的理念 抽象工厂模式与工厂方法模式的差异 怎么来实现抽象工厂模式 抽象工厂模式...

  • 工厂模式

    工厂模式细分三种:简单工厂模式、工厂模式、抽象工厂模式。 工厂模式相当于抽象了简单工厂模式的工厂类,而抽象工厂模式...

  • 【抽象工厂模式】Abstract Factory Design

    抽象工厂模式 抽象工厂模式是**Creational **模式之一 抽象工厂模式和工厂模式很相似,甚至可以说抽象工...

网友评论

      本文标题:Java抽象工厂模式

      本文链接:https://www.haomeiwen.com/subject/wpvrcctx.html