一、定义
抽象工厂模式提供一个创建一系列相关或相互依赖对象的接口
二、适用场景
客户端不依赖于产品类实例如何被创建、实现等细节
强调一系列相关的产品对象(属于同一产品族)一起使用创建对象需要大量重复的代码
提供一个产品类的库,所有的产品以同样的接口实现,从而使客户端不依赖于具体实现
三、优点
隔离代码
四、代码
public interface CourseFactory { Video getVideo(); Article getArticle(); } public class JavaCourseFactory implements CourseFactory{ @Override public Article getArticle() { // TODO Auto-generated method stub return new JavaArticle(); } @Override public Video getVideo() { // TODO Auto-generated method stub return new JavaVideo(); } } public abstract class Article { public abstract void produce(); } public class JavaArticle extends Article { @Override public void produce() { System.out.println("java article!"); } } public abstract class Video { public abstract void produce(); } public class JavaVideo extends Video { @Override public void produce() { System.out.println("java video!"); } }
