这里有一个任务,是常见的类型的网站,我们生产,但我不确定如何最好的方式设计的类。作为敏捷开发的新手,我想确保避免养成坏习惯。
我正在致力于一个网站,其中包含一个网页,为每个国家。CMS允许用户更改每个国家页面的内容(标题、副本等)。我们被问到时间表(可下载的PDF)是否可以由CMS来管理。
假设我有一个乡村班和一个课程表班,什么是最好的(从敏捷的角度来看)?
public List<Timetable> Timetables
public Country AssignedCountry
当然,什么是最好的取决于如何使用信息。如前所述,每个国家都有一页将显示该国的时间表。然而,还有一个时间表页面,其中列出了所有的时间表,并在理想情况下,显示了他们的国家。
使用选项1意味着国家页面可以很容易地列出它的时间表,但是时间表页面上的每个时间表都没有指定给它的国家的引用。
选项2意味着时间表页面更简单,因为我可以列出所有时间表并显示相关国家。然而,国家页面更尴尬,因为每个国家都不知道它的时间表,所以需要一些其他方法来获得相关的时间表。
备选方案3?由于时间表实际上不是一个国家的属性,同样的,国家也不是PDF文件的属性,所以我想我最好创建一个静态的实用工具类(工厂?)其中包含了我可以调用的方法来获取我需要的信息--按国家或国家按时间表排列的时间表。DB中的国家/时间表关系是多对多的,因此这似乎是更符合逻辑的解决方案。
我们的客户通常希望增加更多的功能到CMS,通常这不是一个问题,以决定事情是如何相关的,但这类事情困扰我。
我是不是让事情复杂化了?我错过了一个简单的经验法则或技巧吗?
发布于 2012-10-10 11:44:47
归结为几个简单的问题..。
如果每个时间表都必须与单个国家相关联,那么我会倾向于将country id放在the对象中,然后从sql中选择一个join以供显示。如果答案不同,您应该考虑这些对象的全部用例,这应该为您定义您的答案。
发布于 2012-10-10 11:43:03
我同意备选案文1和备选案文2对你不是最好的。最好的选择可能是使用数据库并使用第三方读取所需的内容。
当然,您也可以同时使用选项1和2。
在国家,你知道要显示什么时间表,在时间表中,你知道哪个国家可以显示它。
此外,您也可以强制使用这两个选项之一,但这样做,您至少需要在一个列表中的国家列表,当你有一个时间表,你循环整个国家要求"isValidTimetable“,然后你有所有的国家,可以显示时间表。
但这一切都取决于你有多少个物体,你不告诉我们的东西。
https://stackoverflow.com/questions/12818381
复制相似问题