Java设计模式_(创建型)_工厂模式


引用百科:

   工厂模式是我们最常用的实例化对象模式了,是用工厂方法代替new操作的一种模式。著名的Jive论坛 ,就大量使用了工厂模式,工厂模式在Java程序系统可以说是随处可见。因为工厂模式就相当于创建实例对象的new,我们经常要根据类Class生成实例对象,如A a=new A() 工厂模式也是用来创建实例对象的。


但是如果有很多的对象需要去new创建,并且设置各种属性,几十几百,如此代码就非常纠结了,

于是乎工厂模式就出现了,称为工厂模式其实就是如同现实中的工厂一样,将需要做的事集中起来,将产品的实现流程化,将通用功能实现可重用性,

一个小例子实现工厂:

 比如说芯片cpu厂商老板说,需要根据不同参数生产出不同的cpu,那么有了这个需求,就可以创建个工厂,如下:

CPU工厂,

CPU接口,

各类CPU的具体功能实现,

如此便可以根据不同的需求生产不同的CPU ,同时如果有新需求,也可以新增CPU实现,只要实现CPU 统一规范,即可实现插拔式扩展。




简单实现代码如下,

CPU接口:

public interface Cpu {
	public void run();
}

CPU接口实现:

AMD CPU :

public class AmdCpu implements Cpu {
	/**
	 * CPU的针脚数
	 */
	private int pins = 0;

	public AmdCpu(int pins) {
		this.pins = pins;
	}

	@Override
	public void run() {
		System.out.println("AMD CPU的针脚数:" + pins);
	}
}

Inter CPU:

public class IntelCpu implements Cpu {
	/**
	 * CPU的针脚数
	 */
	private int pins = 0;

	public IntelCpu(int pins) {
		this.pins = pins;
	}

	@Override
	public void run() {
		System.out.println("Intel CPU的针脚数:" + pins);
	}
}


CPU工厂:

public class CpuFactory {

	public static Cpu createCpu(String type, int param) {
		Cpu cpu = null;
		if ("intel".equals(type)) {
			cpu = new IntelCpu(param);
		} else if ("amd".equals(type)) {
			cpu = new AmdCpu(param);
		}
		return cpu;
	}
}



客户端启动:

public class Client {
	
	public static void main(String[] args) {
		Cpu cpu = CpuFactory.createCpu("amd",987);
		cpu.run();
	}
}


通过以上工厂模式代码,便可以轻松实现,根据同一产品的不同需求,自动生成该产品的不同版本类型,无需关注具体的实现!



  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值