访问与其他两个类相关的类

时间:2009-06-03 22:47:40

标签: class class-design oop

给出以下表格:User,Trial,UserTrial。如果用户有多个试用版,则试用版不会在内部映射到任何用户,并包含关于试用版(名称,描述,设置)的详细信息,而UserTrial包含特定于实例的信息用户的试用(例如,到期日期)。 MVC应用程序的控制器访问UserTrial数据的正确方法是什么?

其他详细信息

  • 没有ORM
  • 每个类都是双用的,可用于创建新的或加载现有的用户,试用版或UserTrials。构造函数在传递ID时加载数据,并使用方法 - > save()
  • 将其保留

似乎有两种选择:

1

User.SetTrial() User.GetUserTrial()

2

UserTrial.SetUser() UserTrial.SetTrial() UserTrial.GetSomeData()

哪种用法最合适?

1 个答案:

答案 0 :(得分:0)

我认为你的选项1不会起作用,因为如果每个用户可以进行多次试验,那么你需要像User.AddTrial(Trial),User.RemoveTrial(Trial),User.getUserTrails()。< / p>

您选择哪种设计选项取决于您是否要将UserTrial对象设为“头等舱”。您是否想要将User和Trials视为UserTrial对象的主要对象,只是粘合以保存关系,或者您是否希望UserTrial对象也是主要对象?如果是前者,你会想要像你的选择1;如果是后者,你会想要类似你的选择2。