C# 如何使用模型/实体类创建线程实例类?
将模型类(例如DAL)作为“信息模型”传递给线程服务类是否被认为是一种良好的做法 例如:C# 如何使用模型/实体类创建线程实例类?,c#,oop,architecture,C#,Oop,Architecture,将模型类(例如DAL)作为“信息模型”传递给线程服务类是否被认为是一种良好的做法 例如: public class CarModel { public string Name { get; set; } public int AmountOfWheels { get; set; } public Engine EngineDescription { get; set; } } public class Car
public class CarModel {
public string Name { get; set; }
public int AmountOfWheels { get; set; }
public Engine EngineDescription { get; set; }
}
public class Car {
public CarModel CarModel { get; set; }
public Car(CarModel model) {
this.CarModel = model;
Thread.Start(BrummBrumm);
}
private void BrummBrumm() {
// start the car
}
}
本示例假设CarModel是一个实体(例如,用于实体框架或任何其他存储库/DAL)或一个用于UI、WebApi、WCF的模型类。。Car是一个类,作为实现驻留在Windows服务中
编辑其他代码
public class CarManager {
public List<Car> Cars = new List<Car>();
public void Add(CarModel model) {
this.Cars.Add(new Car(model));
}
public void Remove(int id) {
...
}
}
公共类CarManager{
公共列表车辆=新列表();
公共无效添加(CarModel模型){
此.Cars.Add(新车(车型));
}
公共无效删除(int id){
...
}
}
。。。那么上面的例子是什么呢?如果我不仅有汽车,还有摩托车呢?上面的示例不会创建很多样板代码吗?最佳实践是在从服务传输数据时使用DTO。还有一些工具可以减少将DTO从业务对象映射到业务对象所需的代码。就我个人而言,我使用Automapper 有一篇好文章,以防你想读到DTO的- 但是,如果您的解决方案很小,而且不应该增长,并且您的服务没有公开,那么您最好只使用您的业务对象,以避免过度设计
希望有帮助 在这种情况下,一种策略模式可能会有所帮助:@Acrotygma嗨,你没有对我的答案发表任何评论,只是想知道它是否对你有帮助?如果没有,我能做些什么来帮助你回答你的问题吗?