工厂模式
工厂模式
-
工厂模式属于创建型模式,它提供了一种创建对象的最佳方式。
-
核心本质实例化对象不用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();
}