美文网首页
创建型模式:01-简单工厂模式

创建型模式:01-简单工厂模式

作者: 综合楼 | 来源:发表于2021-06-08 21:53 被阅读0次

类图:

image.png

示例代码:

image.png
package com.zhs.design.factory.simple.enums;

public enum ToolType {
    CIRCULAR("CIRCULAR", "圆形工具"),
    TRIANGLE("TRIANGLE", "三角形工具"),
    SQUARE("SQUARE", "正方形工具");

    private String code;
    private String desc;

    ToolType(String code, String desc) {
        this.code = code;
        this.desc = desc;
    }
    public String getCode() {
        return code;
    }

    public String getDesc() {
        return desc;
    }
}

package com.zhs.design.factory.simple.factory;

import com.zhs.design.factory.simple.UnSupportedShapeException;
import com.zhs.design.factory.simple.enums.ToolType;
import com.zhs.design.factory.simple.tools.Circular;
import com.zhs.design.factory.simple.tools.DrawTool;
import com.zhs.design.factory.simple.tools.Square;
import com.zhs.design.factory.simple.tools.Triangle;

public class DrawToolFactory {
    public static DrawTool getDrawTool(String type) throws UnSupportedShapeException {
        if (ToolType.CIRCULAR.getCode().equals(type)){
            return new Circular();
        } else if (ToolType.TRIANGLE.getCode().equals(type)){
            return new Triangle();
        } else if (ToolType.SQUARE.getCode().equals(type)){
            return new Square();
        } else {
            throw new UnSupportedShapeException(type);
        }
    }
}

package com.zhs.design.factory.simple.tools;

----------------------------------------------------------------------------------------
public interface DrawTool {
    void draw();
    void erase();
}
----------------------------------------------------------------------------------------
public class Circular implements DrawTool {
    @Override
    public void draw() {
        System.out.println("画出一个圆形");
    }

    @Override
    public void erase() {
        System.out.println("擦除一个圆形");
    }
}
----------------------------------------------------------------------------------------
public class Square implements DrawTool {
    @Override
    public void draw() {
        System.out.println("画出一个正方形");
    }

    @Override
    public void erase() {
        System.out.println("擦除一个正方形");
    }
}
----------------------------------------------------------------------------------------
public class Triangle implements DrawTool {
    @Override
    public void draw() {
        System.out.println("画出一个三角形");
    }

    @Override
    public void erase() {
        System.out.println("擦除一个三角形");
    }
}
package com.zhs.design.factory.simple;

import com.zhs.design.factory.simple.factory.DrawToolFactory;
import com.zhs.design.factory.simple.tools.DrawTool;

public class DrawClient {
    public static void main(String[] args) {
        String[] toolTypes = {"SQUARE", "TRIANGLE", "CIRCULAR", "NO"};
        for (String type:toolTypes) {
            try {
                DrawTool drawTool = DrawToolFactory.getDrawTool(type);
                drawTool.draw();
                drawTool.erase();
            } catch (UnSupportedShapeException e) {
                System.out.println(e.getMessage());
            }
        }
    }
}
package com.zhs.design.factory.simple;

public class UnSupportedShapeException extends RuntimeException {
    public UnSupportedShapeException(String type) {
        super("异常:不支持该类型:"+type);
    }
}

运行结果:

image.png

相关文章

  • 设计模式(1) 工厂方法模式

    创建型模式 简单工厂模式 工厂方法模式IOC与工厂方法模式的结合泛型工厂委托工厂 创建型模式 创建型模式可以隔离客...

  • 简单工厂模式

    Android进阶之设计模式 简单工厂模式 简单工厂模式(又叫作静态工厂方法模式), 其属于创建型设计模式,但并不...

  • java设计模式-工厂模式之简单工厂

    工厂模式属于创建型设计模式(用于创建对象),今天这里要讲的就是工厂三兄弟之简单工厂。工厂三兄弟:(简单工厂,工厂,...

  • 工厂模式-简单工厂模式、工厂方法模式、抽象工厂模式

    工厂模式 工厂模式是一种比较常见的创建型设计模式,分为简单工厂模式、工厂方法模式、抽象工厂模式 工厂模式旨在把对象...

  • android常用设计模式

    26种设计模式 创建型设计模式[5] 单例模式,工厂模式,抽象工厂模式,建造模式,原型模式,[简单工厂模式] 结构...

  • 设计模式小结

    设计模式 7 大原则 创建型 单例模式 原型模式 创建者模式(生成器模式) 简单工厂模式 工厂方法模式 抽象工厂模...

  • 简单工厂模式

    工厂方法模式(Factory Pattern)是创建型设计模式之一。 一、定义 简单工厂模式又称为静态方法工厂模式...

  • 2021-11-16 - 学习记录

    设计模式学习:创建型:工厂(工厂方法,抽象工厂),建造者,单例,原型 设计模式:工厂模式 简单工厂 工厂方法 抽象工厂

  • 简单工厂、工厂方法、抽象工厂、Builder 模式的区别

    在创建型设计模式中,常用的模式有简单工厂模式、工厂方法、抽象工厂、Builder 模式。 下面是这几个模式的定义。...

  • 设计模式[2]-工厂方法模式-Factory Method Pa

    1. 工厂方法模式简介 工厂方法模式(Factory Method Pattern)是创建型的设计模式,和简单工厂...

网友评论

      本文标题:创建型模式:01-简单工厂模式

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