本文共 1438 字,大约阅读时间需要 4 分钟。
抽象工厂模式提供了一种创建一系列相关或相互依赖对象的接口,无需关心具体的实现类。
当系统需要创建一系列相关的对象(如课程系统中的视频和笔记),且这些对象之间存在密切关系或依赖时,抽象工厂模式非常有用。
在课程系统中,不仅需要创建视频,还需要创建对应的手记(笔记)。这要求系统能够同时创建多个相关对象,且如何创建这些对象的具体实现不影响系统的整体功能。
定义通用的产品接口,如Video和Article,确保所有产品都具有共同的方法 signatures。
定义一个抽象工厂接口,提供创建产品的方法。例如:
public interface CourseFactory extends Factory { Course createCourse(); Video createVideo(); Article createNote();}
实现抽象工厂接口,针对特定课程类型创建对应的产品。例如,JavaCourseFactory:
public class JavaCourseFactory implements CourseFactory { public Course createCourse() { return new JavaCourse(); } public Video createVideo() { return new JavaVideo(); } public Article createNote() { return new JavaArticle(); }}
实现通用接口,具体实现各产品的功能。例如,JavaVideo和JavaArticle:
public class JavaVideo implements Video { // 实现 video 相关方法}public class JavaArticle implements Article { // 实现 note 相关方法}
设计一个Test类来调用工厂创建课程。例如:
public class Test { public static void main(String[] args) { CourseFactory factory = new JavaCourseFactory(); Course course = factory.createCourse(); System.out.println("课程已创建:" + course.getName()); }}
在课程系统中,抽象工厂模式非常适合,因为它允许系统方便地创建多种课程类型的组合,而无需关心每个课程的具体实现。
转载地址:http://gybhz.baihongyu.com/