- 定义
定义一个创建产品对象的工厂接口,将产品对象的实际创建工作推迟到具体子工厂类当中。这满足创建型模式中所要求的“创建与使用相分离”的特点。
- 优点
1.用户只需要知道具体工厂的名称就可得到所要的产品,无须知道产品的具体创建过程
2.在系统增加新的产品时只需要添加具体产品类和对应的具体工厂类,无须对原工厂进行任何修改,满足开闭原则;
- 缺点
1.每增加一个产品就要增加一个具体产品类和一个对应的具体工厂类,这增加了系统的复杂度。
类图

/***
* 产品类接口
*/
public interface IVideo {
public void getVideoName();
}
public class JavaVideo implements IVideo {
@Override
public void getVideoName() {
System.out.println("java video");
}
}
public class VueVideo implements IVideo {
@Override
public void getVideoName() {
System.out.println("vue video");
}
}
/***
* 工厂接口
*/
public interface IVideoFactory {
public IVideo getVideo();
}
public class JavaVideoFactory implements IVideoFactory {
@Override
public IVideo getVideo() {
return new JavaVideo();
}
}
public class VueVideoFactory implements IVideoFactory {
@Override
public IVideo getVideo() {
return new VueVideo();
}
}
网友评论