wangking717 写道
简单工厂模式,把对象(统一接口)的创建封装起来,而不去用了解对象所代表的真正的实现类及其初始化过程。我们只需要把参数传递给简单工厂,工厂就会根据你的需要返回相应的产品对象
简单工厂模式是大家常用到的一个模式,最直观的还是来看类图吧!
Iproduct.java
public interface IProduct{
void work();
}
Product1.java
public class Product1 implements IProduct{
@Override
public void work(){
System.out.println(this.getClass().getSimpleName());
}
}
Product2.java
public class Product2 implements IProduct{
@Override
public void work(){
System.out.println(this.getClass().getSimpleName());
}
}
SimpleFactory.java
public class SimpleFactory{
public IProduct getProduct(String type){
IProduct pro = null;
if("product1".equals(type)){ //如果这里的IF分支很多,可以使用反射方式减少分支
pro = new Product1();
}else if("product2".equals(type)){
pro = new Product2();
}else {
throw new RuntimeException("unknown operating type: "+type);
}
return pro;
}
}
Test.java
public class Test{
public static void main(String[] args){
IFactory factory = new SimpleFactory();
IProduct pro1 = factory.getProduct("product1");
IProduct pro2 = factory.getProduct("product2");
pro1.work();
pro2.work();
}
}