Java 面向对象设计-创建策略/模式
对于OOP实践,我正在做一个爱好项目,这是一个测验程序,它从txt文件中读取一个表格,并就表格中的条目提出问题。这样做的目的是为了便于学习我们系课程的材料 到目前为止,我编写了I/O位,将一个相当普通的GUI和类组合在一起,以表示datatable中不同类型的实体。不过,我不确定如何继续进行该计划的核心,我指的是问题生成和验证 我的第一个想法是创建一个类Java 面向对象设计-创建策略/模式,java,oop,design-patterns,Java,Oop,Design Patterns,对于OOP实践,我正在做一个爱好项目,这是一个测验程序,它从txt文件中读取一个表格,并就表格中的条目提出问题。这样做的目的是为了便于学习我们系课程的材料 到目前为止,我编写了I/O位,将一个相当普通的GUI和类组合在一起,以表示datatable中不同类型的实体。不过,我不确定如何继续进行该计划的核心,我指的是问题生成和验证 我的第一个想法是创建一个类AbstractQuestion,它基本上定义了一个问题是什么以及它有哪些字段(一个字符串表示、一个答案和一个难度级别)。然后我想我可以为不同类
AbstractQuestion
,它基本上定义了一个问题是什么以及它有哪些字段(一个字符串表示、一个答案和一个难度级别)。然后我想我可以为不同类型的问题编写类,例如一个类用于简单的值查询(例如给出实体名称并询问特定属性),另一个类用于更复杂的问题(例如询问实体之间的交互等)
然而,我不确定这是否是最好的方式。我真的无法表达为什么,但我觉得这不是最整洁的方式。在工厂类上工作有意义吗?基本上,我需要:
- 提供基于从数据表中随机选取的一个或多个实体生成问题的方法
- 根据用户的输入,需要在运行时创建不同类型的问题(期望的难度级别)
- 问题需要验证,并且用户需要通过主
类得到通知(因此问题需要可访问)测验
至于你可以使用的通知。研究它们并查看您喜欢的语言示例您可以使用创建工厂,知道如何根据特定参数创建问题。
至于你可以使用的通知。研究它们,看你喜欢的语言的例子从两个方面思考:
一旦你清楚地知道问题的责任,那么你可以考虑不同的问题接口和类的数量,从而决定你是否需要一个创造性的模式,比如工厂。当您有许多不同的类都实现相同的接口时,Factory工作得很好
工厂:去问我一个问题。问题:去问用户。从两个方面思考:
一旦你清楚地知道问题的责任,那么你可以考虑不同的问题接口和类的数量,从而决定你是否需要一个创造性的模式,比如工厂。当您有许多不同的类都实现相同的接口时,Factory工作得很好
工厂:去问我一个问题。问题:去问用户。我有一个简单的测验应用程序运行在production=)有不同类型的问题,有不同的行为(应该以不同的方式提问、回答和提示)。问题具有不同的复杂性等 在我的情况下,最合适的解决方案是使用一些抽象方法(也可以是接口)和不同的实现创建问题超类。并且有QuestionGenerator(作为工厂工作),工厂,基于一些输入返回不同的实现 考虑一下问题的界面(公共部分),然后使用工厂模式。 可能会有更复杂的场景,您可以发现使用AbstractFactory或Builder模式的一些优势 在我这个简单的例子中,提取接口是足够的