浅谈工厂设计模式

废话不多说, 直接上代码

先建立一个产品类的统一接口, 以及一个工厂类的总接口, 用来生产产品

/**
 * 产品类的总接口
 * @author xsh
 * @time 2018年7月11日
 */
public interface Product {
	
	void production();
} 
/**
 * 所有产品工厂类的总接口
 * @author xsh
 * @time 2018年7月11日
 */
public interface ProductFactory {
	
	Product getProduct();
}

接下来, 所有的产品和工厂都从这两个接口中导出,

先创建Book类, 以及BookFactory

/**
 * 具体的产品类,书
 * @author xsh
 * @time 2018年7月11日
 */
public class Book implements Product {
	@Override
	public void production() {
		System.out.println("生产了一本书");
	}
}
/**
 * Book类的工厂类
 * @author xsh
 * @time 2018年7月11日
 */
public class BookFactory implements ProductFactory {
	private static Book book = new Book();
	@Override
	public Product getProduct() {
		//这里写逻辑代码
		//这里我写一个简单的单例
		return book;
	}
}

最后, 开始生产

public class Run {
	public static void main(String[] args) {
		//方法验证
		ProductFactory factory = new BookFactory();
		Product product = factory.getProduct();
		product.production();
	}
}

所有的对象都使用接口引用, 方便扩展, 当需要增加产品时, 只需要新增一个产品类以及一个工厂类

/**
 * 新增产品
 * @author xsh
 * @time 2018年7月11日
 */
public class Pen implements Product {
	@Override
	public void production() {
		System.out.println("生产了一支笔");
	}
}
/**
 * 新增产品工厂
 * @author xiongsihang
 * @time 2018年7月11日
 */
public class PenFactory implements ProductFactory {
	@Override
	public Product getProduct() {
		Pen pen = new Pen();
		return pen;
	}
}

这时验证方法只需要更改一行代码

public class Run {
	public static void main(String[] args) {
		//方法验证
		//ProductFactory factory = new BookFactory();
		ProductFactory factory = new PenFactory();
		Product product = factory.getProduct();
		product.production();
	}
}




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值