博客
关于我
设计模式深入浅出--4.抽象工厂coding以及JDK中的使用
阅读量:743 次
发布时间:2019-03-17

本文共 1413 字,大约阅读时间需要 4 分钟。

抽象工厂模式在课程系统中的应用

1. 定义 & 功能

抽象工厂模式提供了一种创建一系列相关或相互依赖对象的接口,无需关心具体的实现类。

2. 适用场景

当系统需要创建一系列相关的对象(如课程系统中的视频和笔记),且这些对象之间存在密切关系或依赖时,抽象工厂模式非常有用。

3. 应用场景:课程系统

在课程系统中,不仅需要创建视频,还需要创建对应的手记(笔记)。这要求系统能够同时创建多个相关对象,且如何创建这些对象的具体实现不影响系统的整体功能。

4. 类结构设计

4.1 产品接口

定义通用的产品接口,如Video和Article,确保所有产品都具有共同的方法 signatures。

4.2 抽象工厂接口

定义一个抽象工厂接口,提供创建产品的方法。例如:

public interface CourseFactory extends Factory {    Course createCourse();    Video createVideo();    Article createNote();}

4.3 具体工厂实现

实现抽象工厂接口,针对特定课程类型创建对应的产品。例如,JavaCourseFactory:

public class JavaCourseFactory implements CourseFactory {    public Course createCourse() {        return new JavaCourse();    }    public Video createVideo() {        return new JavaVideo();    }    public Article createNote() {        return new JavaArticle();    }}

4.4 产品具体实现

实现通用接口,具体实现各产品的功能。例如,JavaVideo和JavaArticle:

public class JavaVideo implements Video {    // 实现 video 相关方法}public class JavaArticle implements Article {    // 实现 note 相关方法}

5. 测试类设计

设计一个Test类来调用工厂创建课程。例如:

public class Test {    public static void main(String[] args) {        CourseFactory factory = new JavaCourseFactory();        Course course = factory.createCourse();        System.out.println("课程已创建:" + course.getName());    }}

6. 优点

  • 解耦:客户端不依赖具体实现,简化了维护工作。
  • 扩展性:方便添加新的课程类型,只需创建新的工厂和产品实现。
  • 7. 缺点

  • 耦合性:如果需要纵向扩展(增加产品等级结构),需修改工厂接口。
  • 封闭性:如果需要横向扩展(新增工厂),需新增工厂实现。
  • 8. 适用性

    在课程系统中,抽象工厂模式非常适合,因为它允许系统方便地创建多种课程类型的组合,而无需关心每个课程的具体实现。

    转载地址:http://gybhz.baihongyu.com/

    你可能感兴趣的文章
    python+pytest接口自动化:接口测试
    查看>>
    Python+requests+unittest执行接口自动化测试详情
    查看>>
    Python+requests+unittest执行接口自动化测试详情
    查看>>
    python+requests+unittest执行自动化接口测试!
    查看>>
    Python+Requests编码识别Bug
    查看>>
    python函数编写_[零基础学python]传说中的函数编写条规
    查看>>
    Python+selenium —— UI自动化之鼠标操作
    查看>>
    python函数注释,参数后面加冒号:,函数后面的箭头→是什么?
    查看>>
    Python+Selenium+Threading进行兼容性测试
    查看>>
    Python+selenium+unittest的GUI自动化框架实现
    查看>>
    python函数拟合不规则曲线_Python计算&绘图——曲线拟合问题(转)
    查看>>
    python函数定义的基本格式_零基础学python-2.19 定义函数、调用函数与默认参数
    查看>>
    Python+Selenium之数据驱动测试的实现
    查看>>
    python函数定义与使用+返回值简解
    查看>>
    Python+Selenium登录
    查看>>
    Python日期时间模块
    查看>>
    Python函数合集:足足68个内置函数请收好!
    查看>>
    Python+Selenium自动化测试项目实战
    查看>>
    Python+Selenium自动化测试项目实战【建议收藏】
    查看>>
    Python+Selenium自动化测试:Page Object模式
    查看>>