读书人

设计形式学习四:简单工厂模式

发布时间: 2012-07-15 20:11:38 作者: rapoo

设计模式学习四:简单工厂模式

一.概念

???? 简单工厂模式是属于创建型模式,又叫做静态工厂方法(StaticFactory Method)模式。

?

二.实例分析

??? 现需要一个cpu,各大厂家都能生成,我们到底选哪家呢。

设计形式学习四:简单工厂模式

?

???? CPU

package com.zzy.simpleFactory;/** * CPU接口 * @author eason * */public interface CPU {public void work();}

?

???? SamSungCPU

package com.zzy.simpleFactory;/** * 三星CPU * @author eason * */public class SamSungCPU implements CPU{@Overridepublic void work() {System.out.println("三星CPU is working...");}}

?

???? SeagateCPU

package com.zzy.simpleFactory;/** * 希捷CPU * @author eason * */public class SeagateCPU implements CPU{@Overridepublic void work() {System.out.println("希捷CPU is working...");}}

?

???? WDCPU

package com.zzy.simpleFactory;/** * 西数CPU * @author eason * */public class WDCPU implements CPU{@Overridepublic void work() {System.out.println("西数CPU is working...");}}

?

???? CPUFactory

package com.zzy.simpleFactory;/** * 简单工厂 * @author eason * */public class CPUFactory {public static CPU createCPU(Company company) {CPU cpu = null;switch(company) {case WD :cpu = new WDCPU();break;case SamSung :cpu = new SamSungCPU();break;case Seagate :cpu = new SeagateCPU();break;}return cpu;}}enum Company {WD, SamSung, Seagate}

?

???? TestSimpleFactory

package com.zzy.simpleFactory;/** * 测试类 * @author eason * */public class TestSimpleFactory {public static void main(String[] args) {CPU cpu = CPUFactory.createCPU(Company.WD);cpu.work();}}

?

三.简单工厂模式的产品等级与产品族

?

设计形式学习四:简单工厂模式

    产品等级:同一个级别上的东西。比喻主板和cpu在电脑机箱里面就是平等的,它们就是一个级别的。产品族:是指位于不同产品等级结构中,功能相关联的产品组成的家族。比如三星的CPU和三星的主板,组成一个家族。希捷的CPU和希捷芯片的主板,又组成一个家族。而这两个家族都来自于两个产品等级:CPU,主板。简单工厂模式:用来生产同一等级结构中的任意产品。根据客户端传给的参数,简单工厂决定返回哪个产品给你。

?

读书人网 >软件开发

热点推荐