工厂模式

工厂模式

  • 工厂模式属于创建型模式,它提供了一种创建对象的最佳方式。

  • 核心本质实例化对象不用new关键词,用工厂方法代替new 。

  • 将选择实现类,创建对象统一管理和控制。从而使调用者跟我们的实现类解耦。

  • 工厂模式大体分为简单工厂、工厂方法、抽象工厂等三种模式。

1.简单工厂模式

  • 定义一个工厂类,工厂类的静态方法用于接收不同参数创建不同的实例对象。(又叫静态工厂模式)

Chart接口

public interface Chart {
    public void display();
}

Chart实现类HistogramChart

public class HistogramChart implements Chart {

    public HistogramChart() {
        System.out.println("创建柱状图");
    }

    @Override
    public void display() {
        System.out.println("显示柱状图");
    }
}

Chart实现类LineChart

public class LineChart implements Chart {
    public LineChart() {
        System.out.println("创建折线图");
    }

    @Override
    public void display() {
        System.out.println("显示折线图");
    }
}

Chart实现类PieChart

public class PieChart implements Chart {
    public PieChart() {
        System.out.println("创建饼状图");
    }

    @Override
    public void display() {
        System.out.println("显示饼状图");
    }
}

Chart工厂类

public class ChartFactory {
    //静态工厂方法
    public static Chart getChart(String type) {
        Chart chart = null;

        if (type.equalsIgnoreCase("histogram")) {
            chart = new HistogramChart();
            System.out.println("初始化设置柱状图");

        } else if (type.equalsIgnoreCase("pie")) {
            chart = new PieChart();
            System.out.println("初始化设置饼状图");

        } else if (type.equalsIgnoreCase("line")) {
            chart = new LineChart();
            System.out.println("初始化设置折线图");
        }

        return chart;
    }
}

利用工厂类创建Chart对象

    public static void main(String[] args) {
        Chart chart;
        chart = ChartFactory.getChart("histogram");
        chart.display();
    }
posted @ 2022-09-29 11:11  加瓦同学  阅读(121)  评论(0编辑  收藏  举报