一.概念
简单工厂模式是属于创建型模式,又叫做静态工厂方法(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{
@Override
public void work() {
System.out.println("三星CPU is working...");
}
}
SeagateCPU
package com.zzy.simpleFactory;
/**
* 希捷CPU
* @author eason
*
*/
public class SeagateCPU implements CPU{
@Override
public void work() {
System.out.println("希捷CPU is working...");
}
}
WDCPU
package com.zzy.simpleFactory;
/**
* 西数CPU
* @author eason
*
*/
public class WDCPU implements CPU{
@Override
public 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,主板。
- 简单工厂模式:用来生产同一等级结构中的任意产品。根据客户端传给的参数,简单工厂决定返回哪个产品给你。