我还是MVC的初学者,所以我在设计方面遇到了问题。
我有很多类别C1,C2,C3。每个类别都有她特殊的结构。因此每个类别都应该在模型类中展示。我还拥有每个类别自己在数据库中的表,通过 Hibernate 映射到彼此。
我需要在我的应用程序中获取Excel文件中的数据(我成功上传并从excel文件中获取数据)。但是excel文件应该尊重表单中选择的类别的结构。所以这意味着,如果我选择表单C1,那么我上传一个具有不同结构的excel文件,该文件应该被拒绝......
那么如何设计我的应用程序以根据指定的类别处理Excel文件 ??
答案 0 :(得分:1)
定义ExcelStructureValidator
接口,让所有类别类(C1,C2和C3)实现
ExcelStructureValidator createExcelStructureValidator()
方法,返回所选类别的相应验证器。
其他设计是可能的,甚至更好,但如果没有关于类别是什么以及如何将excel文件结构链接到类别的更多信息,则很难提供理想的解决方案。但是,需要某种基于该类别的验证器工厂。该类别应该是工厂的问题。
答案 1 :(得分:0)
如果在表单中选择了一种类别,则这是一项验证任务。使用Swing GUI,这种事情通常由像InputVerifier这样的独立类完成。这可以集成在您的控制器中,也可以转发给服务。
如果您不确定输入类别的类型,可以使用通用方法来验证数据。如果您期望某种类别类型,则可以使用工厂式方法来获取适合预期类别的特定验证程序实例。对于这些验证器,您可以使用一个公共接口,其中isDataValid
方法返回true / false,或者使用一些自定义异常来获得更细粒度和OO方法。