简介
客户端不依赖于产品实例如何被创建,实现等细节,
强调一系列相关产品对象一起使用创建对象需要大量重复代码
将一个系列的产品族放在一起
Coding

package com.yulang.design_pattern_23.abstract_factory;public interface CourseFactory {Video getVideo();Article getArticle();}
package com.yulang.design_pattern_23.abstract_factory;public abstract class Video {public abstract void produce();}
package com.yulang.design_pattern_23.abstract_factory;public class PythonVideo extends Video {@Overridepublic void produce() {System.out.println("python--video");}}
package com.yulang.design_pattern_23.abstract_factory;public class PythonArticle extends Article {@Overridepublic void produce() {System.out.println("python -- article");}}
package com.yulang.design_pattern_23.abstract_factory;public class PythonCourseFactory implements CourseFactory {@Overridepublic Video getVideo() {return new PythonVideo();}@Overridepublic Article getArticle() {return new PythonArticle();}}
package com.yulang.design_pattern_23.abstract_factory;public abstract class Article {public abstract void produce();}
