由一个工厂对象决定创建出哪一种产品类的实例。
作用:简单工厂模式的核心是工厂类。这个类含有必要的逻辑判断,可以决定在什么时候创建出哪一个产品的实例。通过这种做法实现了对责任的分割(客户端可以免除直接创建对象的责任)
缺点:这个工厂类集中了所有的业务逻辑,当业务逻辑比较复杂时,一旦不能工作了,整个系统都将受到影响。并且简单工厂模式违背了开闭原则(对扩展的开放,对修改的关闭)
代码
//接口
public interface IProduct {
public void method();
}
//产品类A
public class ProductA implements IProduct{
@Override
public void method() {
System.out.println("A方法");
}
}
//产品类B
public class ProductB implements IProduct{
@Override
public void method() {
System.out.println("B方法");
}
}
工厂类(简单工厂模式的核心)
public class Factory {
public static IProduct createtProduct(String productName) {
if(productName==null) {
//非空判断
return null;
}
if(productName.equals("A")) {
return new ProductA();
}else if(productName.equals("B")) {
return new ProductB();
}else {
return null;
}
}
}
测试类
public class Test01 {
public static void main(String args[]) {
IProduct product1=Factory.createtProduct("A");
product1.method();
IProduct product2=Factory.createtProduct("B");
product2.method();
}
}
运行结果
总结:简单来说,就是多个实现了接口的多个产品类,以及生产产品对象的工厂类,工厂类通过传入的参数决定生产产品的种类。
提枪策马乘胜追击04-21 20:01
代码小兵92504-17 16:07
代码小兵98804-25 13:57
杨晶珍05-11 14:54