设计模式学习四:简单工厂模式
一.概念
???? 简单工厂模式是属于创建型模式,又叫做静态工厂方法(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,主板。简单工厂模式:用来生产同一等级结构中的任意产品。根据客户端传给的参数,简单工厂决定返回哪个产品给你。
?