设计模式-抽象工厂模式
抽象工厂模式
主要解决:主要解决接口选择的问题。
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(); } }