我有一个 Active Record 模式的课程。让我们称之为“汽车”。所以我有我所有的方法,比如插入、更新等,但它们只适用于单个对象。如果我想处理这些对象的列表怎么办?我是否应该创建一个单独的类让我们说“CarCollection”将用于处理 Car 对象列表?或者我应该在我的 Car 类中创建一个返回 Car 对象列表的方法?我是 OOP 的初学者,但第二个选项(返回列表的方法)似乎有点错误。
感谢您的回答。
正如您自己所说:您将不得不使用一系列汽车。问题是您将在哪个班级存储此列表。
当您只是将它用作独立示例时,您可以将集合存储在包含您的main
方法的类中。实际上,尽管您可能会拥有一个Dealership
逻辑上包含汽车列表的类或类似的东西。
还有其他可能性,例如特定于在对象列表上执行操作的类,例如 a CarManager
,但应谨慎使用。
不是活动记录模式的忠实拥护者,但是如果您要走这条路,我希望返回多辆汽车的方法仍然存在于您的Car
班级中-您不会使用单独的班级。
这似乎是Rails的做法。
使用数组、列表或字典是标准做法。我喜欢使用字典,因为将类与唯一条目链接在一起非常快。
创建一个名为 car 的类(不是结构)。
您可以在字典中使用它来启用主唯一键加速。
Public class Car
{
public string id;
public string name;
}
创造:
Dictionary<string, Car> carList = new Dictionary<string, Car>();
您可以在方法中添加它并将其作为参数传递或全局创建(根据您的应用程序)
加上:
Car car = new Car(){id = "1", Name="car1"};
carList[car.id] = car;
您可以使用 Linq 将您的类链接在一起(几乎像 SQL): 基本 LINQ 查询