【自分の総括】设计模式之简单工厂模式(实例分析)

一、概念

定义一个工厂类,根据参数的不同返回不同类的实例,这些类具有公共的父类和一些公共的方法。简单工厂模式不属于GoF设计模式,是最简单的工厂模式。在分析简单工厂模式中,引入三个角色概念。Factory(工厂角色)、Product(抽象产品角色)、ConcreteProduct(具体产品角色)。


二、实例分析

背景简单引入,系统提供三个具体产品类分别对应三种图表的打印,三个具体产品类实现同一个抽象产品接口,创建一个工厂类用于区分需要返回的具体产品类,标识用户当前需要打印的图表种类。

1.抽象产品接口

//abstract product interface
public interface Chart {
	public void display();
}
2.三个具体产品类
// concrete product class No.1
public class HistogramChart implements Chart {
	public HistogramChart() {
		System.out.println("Create HistogramChart!");
	}

	public void display() {
		System.out.println("Display HistogramChart!");
	}
}
//concrete product class No.2
public class LineChart implements Chart {
	public LineChart() {
		System.out.println("Create LineChart!");
	}

	public void display() {
		System.out.println("Display LineChart!");
	}
}
//concrete product class No.3
public class PieChart implements Chart {
	public PieChart() {
		System.out.println("Create PieChart!");
	}

	public void display() {
		System.out.println("Display PieChart!");
	}
}
3.简单工厂类
工厂类是简单工厂模式的核心,提供一个static方法用于返回具体产品类的对象,返回对象是抽象产品类型,这也是定义一个公共产品接口的好处。假如如不这么设计,而是将产品类直接平铺开,会有造成什么影响?
// simple factory
public class ChartFactory {
	public static Chart getChart(String type) {
		Chart chart 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值