设计模式(四)简单工厂

简单工厂

由一个工厂对象决定创建出哪一种产品类的实例

适用场景

工厂类负责创建的对象比较少

客户端只知道传入工厂类的参数,对于如何创建对象不关心

优点

只需要传入一个正确的参数,就可以获取所需要的参数,并且不需要知道创建的细节

可以决定在什么时候创建哪一个产品的实例

缺点

工厂类的职责过重,增加一个新的产品,需要修改工厂类的判断逻辑,违背了开闭原则

无法形成基于继承的本地结构

//测试类
public class Test {
    public static void main(String[] args) {
        Factoryse factoryse = new Factoryse();
        Course java = factoryse.Fac("python");
        java.red();
    }
}
//课程接口
public interface Course {
    void red();
}
//实现类
public class Python implements Course {
    @Override
    public void red() {
        System.out.println("learn python");
    }
}
public class java implements Course {
    @Override
    public void red() {
        System.out.println("learn java");
    }
}
//简单工厂类
public class Factoryse {
    public Course Fac(String le){
        if (le.equalsIgnoreCase("java")){
            return new java();
        }else if (le.equalsIgnoreCase("python")){
            return new Python();
        }
        return null;
    }
}

以上代码简单工厂可以优化

参数传入一个类,使用反射来创建它的对象,可以尽量满足开闭原则

猜你喜欢

转载自blog.csdn.net/emptyee/article/details/86936264
今日推荐