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

来源:互联网 发布:初学钢琴软件 编辑:程序博客网 时间:2024/05/21 22:46


引用百科:

  工厂模式是我们最常用的实例化对象模式了,是用工厂方法代替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;}@Overridepublic 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;}@Overridepublic 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();}}


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



原创粉丝点击