这在设计上听起来有误吗?我试图看到最灵活的方式来处理可能随时间变化的模板。例如,应用程序模板的第一个版本可以有10个字段。下一版本的模板可以有15个字段。问题不是添加字段,而是删除/更改字段名称的含义。模板将存储为JSON表示。因此,在具有不同变化的数据库中存储不是问题。问题是如何最好地在OO设计原则中表示这一点。另外,在具有JSP视图的经典Spring MVC中,随着时间的推移处理存储模板的不同变体的最佳方法是什么?
我在想如果我用记录(JSON)存储版本和数据库。
要在我的基本接口(Marker like interface)中执行此操作,我有2个方法String getVersion()和getType()在考虑设计原则时会出错吗?如果我这样做,我可以根据从数据库中检索这些对象的任何子类的类型进行查询。想象一下,对象在数据库中存储为平面结构(JSON)。例如 - > findXTypes()作为方法。在方法实现中,我可以通过查询中的Type ='。tostring()'找到。
查看它时会变得复杂。我可以通过@RequestMapping(value =“/ myTemplate”,method = RequestMethod.GET)在控制器中执行此操作.public String showRecord(@RequestParam ...){.... return“myTemplate”+键入+ TemplateVersion; }
然后我将不得不为每个版本引入一个新的JSP(View)。我知道不是很好,但除此之外我必须在同一视图中处理IF语句中的版本,这将更加困难。
有什么好主意吗?
要弄清楚你在问什么,有点难。但我认为你需要明确地将要求与设计分开。
我假设您的“模板”实际上是您需要向用户呈现的表单或报表页面。或者这些模板与表单/报告之间存在1对1的关系。
要求:您需要随着时间的推移支持表单/页面的不同版本,并且页面中的字段将随时间而变化。但关键问题是您是否需要在任何给定时间支持表单的多个版本?
架构:如果您需要同时支持多个版本的模板,有两种基本方法: