下面是我们生产的这种网站常见的一项任务,但我不确定设计这些课程的最佳方式。对于敏捷开发我相当陌生,我想确保我避免惹起不良习惯。对象关联:哪个对象应该引用其他对象?
我正在一个网站上为每个国家都包含一个页面。 CMS允许用户更改每个国家/地区页面的内容(标题,副本等)。我们被问到是否可以由CMS管理时间表(可下载的PDF)。
假设我有一个国家类和时间表类什么是最好的(从灵动视角)?
- 创建全国一流的性能:
public List<Timetable> Timetables
- 创建时间表类的属性:
public Country AssignedCountry
当然,虽然,有什么最好的是由信息的使用方式决定的。如前所述,每个国家都会显示该国的时间表。但是,还有一个时间表页面,列出所有时间表,并且最好显示他们的国家。
使用选项1意味着国家页面可以很容易地列出它的时间表,但时间表页面上的每个时间表都没有提及其分配的国家。
选项2是指时间表页面更容易,因为我可以列出所有时间表,并显示相关的国家。然而,国家页面更尴尬,因为每个国家都不知道它的时间表,所以需要其他一些方法来获得相关的时间表。
选项3? 由于时间表不是一个国家的财产,同样,国家不是PDF文件的属性,我想我可能会更好地创建一个静态工具类(工厂?),其中包含我可以调用的方法给我我需要的信息 - 按时间表按国家或国家列出时间表。数据库中的国家/时间表关系是多对多的,所以这似乎是更合乎逻辑的解决方案。
我们的客户通常希望向CMS添加更多功能,通常决定事情的相关性并不是问题,但这种事情会让我感到困扰。
我是不是过于复杂?有一个简单的,经验法则或我失踪的技术?
选项3与存储库类... –
恕我直言:敏捷!= YAGNI –
为什么你一直在你的问题中重复“敏捷”?对象设计与敏捷开发方法无关。 –