学习笔记(7):第2章 架构师内功心法之设计模式 -Factory Method Pattern工厂方法模式...

立即学习:https://edu.csdn.net/course/play/28941/403596?utm_source=blogtoedu

工厂方法模式Factory Method Pattern

定义:定义一个创建对象的接口,但让实现这个接口的类来决定实例化哪个类,工厂方法让类的实例化推迟到子类中进行。

属于创建设计模式。

public interface ICourseFactory{
     ICourse create();
}

public class JavaCourseFactory implements ICourseFactory{
    public ICourse create(){
        return new JavaCourse();
}


public class PythonCourseFactory implements ICourseFactory{
    public ICourse create(){
         return new PythonCourse();
}
}

public interface ICourse{
    void record();
}
 
public class JavaCourse implements ICourse{
    public void record(){
        System.out.println("录制Java课程");
    }
}
 
public class PythonCourse implements ICourse{
    public void record(){
        System.out.println("录制Python课程");
    }
}

public class Test{
    public static void main(String[] args){
         ICourseFactory factory = new JavaCourseFactory();
         ICourse icourse =  factory.create();
         icourse.record();
}
}

工厂方法模式适用场景

创建对象需要大量重复代码。

客户端(应用层)不依赖于产品类实例如何被创建,实现等细节。

一个类通过其子类来指定创建哪个对象。

缺点:类的个数容易过多,增加了代码结构的复杂度

增加了系统的抽象性和理解难度。

优点:用户只需要关心所需产品对应的工厂,无需关心创建细节。加入新的产品符合开闭原则,提高了系统的可扩展性。

猜你喜欢

转载自blog.csdn.net/weixin_43222122/article/details/107354201