通过工厂+策略模式来处理不同题目的插入逻辑
优缺点
优点:
灵活性:策略模式允许在运行时选择不同的策略,而工厂模式可以根据需求创建相应的对象。这种组合可以使系统更加灵活,能够根据不同的需求选择合适的策略和对象。
可扩展性:通过工厂模式,可以轻松添加新的具体产品或策略,而无需修改现有代码。这使得系统更容易扩展,可以根据需要动态添加新的产品和策略。
代码复用:策略模式和工厂模式都鼓励代码的重用。策略模式中的策略和工厂模式中的产品可以在不同的上下文中被重复使用,避免了重复编写相似的代码。
松耦合:策略模式和工厂模式的结合可以实现松耦合的设计。策略模式通过接口与具体策略解耦,工厂模式通过抽象工厂与具体产品解耦。这种松耦合设计使得系统更加灵活、可维护和可测试。
缺点:
增加复杂性:使用策略模式和工厂模式的混合会增加代码的复杂性,需要定义多个接口、类和实现。这可能会增加开发和维护的成本。
增加类的数量:使用策略模式和工厂模式的混合可能导致类的数量增加,特别是在有多个具体策略和产品时。这可能会增加系统的复杂性和内存占用。
在新增逻辑中 subjectTypeHandlerFactory.getHandler(subjectInfo.getSubjectType()) 通过题目类型获取对应的handler, 统一去 SubjectTypeHandler 接口里找,可以实现不同题目类型有不同的处理逻辑