从例如传递模型类是否被认为是一种好习惯。作为“信息模型”的线程服务类的DAL?
示例:
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是实体(例如,与Entity Framework或任何其他存储库/ 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) {
...
}
}
...那么上面的例子是什么?如果我不仅有汽车,还有摩托车怎么办?上面的例子不会创建很多样板代码吗?
答案 0 :(得分:0)
最佳做法是在从/向服务传输数据时使用DTO。还有一些工具可以减少将DTO映射到业务对象所需的代码。我个人使用Automapper。
有一篇好文章,以防您想阅读DTO - Pros and Cons of Data Transfer Objects
但是,如果您的解决方案很小并且不应该增长并且您的服务没有公开,那么您最好只使用业务对象以避免过度设计。
希望它有所帮助!