设计模式-抽象工厂模式

抽象工厂模式

主要解决:主要解决接口选择的问题。

JAVA应用:

java.sql.Connection

org.apache.ibatis.session.SqlSessionFactory

 

public abstract class Article {
    public abstract void produce();
}

 

public class JavaArticle extends Article {
    @Override
    public void produce() {
        System.out.println("编写Java课程手记");
    }
}

 

public class PythonArticle extends Article {
    @Override
    public void produce() {
        System.out.println("编写Python课程手记");
    }
}

 

public abstract class Video {
    public abstract void produce();

}

 

public class JavaVideo extends Video {
    @Override
    public void produce() {
        System.out.println("录制Java课程视频");
    }
}

 

public class PythonVideo extends Video {
    @Override
    public void produce() {
        System.out.println("录制Python课程视频");
    }
}

 

public interface CourseFactory {
    Video getVideo();
    Article getArticle();

}

 

public class JavaCourseFactory implements CourseFactory {
    @Override
    public Video getVideo() {
        return new JavaVideo();
    }

    @Override
    public Article getArticle() {
        return new JavaArticle();
    }
}

 

public class PythonCourseFactory implements CourseFactory {
    @Override
    public Video getVideo() {
        return new PythonVideo();
    }

    @Override
    public Article getArticle() {
        return new PythonArticle();
    }
}

 

public class Test {
    public static void main(String[] args) {
        CourseFactory courseFactory = new JavaCourseFactory();
        Video video = courseFactory.getVideo();
        Article article = courseFactory.getArticle();
        video.produce();
        article.produce();
    }
}

 

posted @ 2021-04-12 20:29  JAVA劝退师-H  阅读(42)  评论(0编辑  收藏  举报