Car类中的以下GetPhycialFileLocation()方法是否应该拥有自己的服务层?
public class Car
{
public int id;
public string model;
public int year;
public IList<Pic> lstCarPics;
}
然后我们有各自的班级:
public class Pic
{
public string filename;
public string fileLocation;
public string GetPhysicalFileLocation()
{
string LocalDirectory = "~\\CarFiles\\";
DirectoryInfo diPath = new
DirectoryInfo(HttpContext.Current.Server
.MapPath(LocalDirectory + car.id);
}
}
看到此方法和其他方法将访问整个应用程序中的物理文件位置,这样的事情是否可以证明它拥有自己的FileService?
我很难理解这样的方法应该属于它自己的服务层而不是它的类。
答案 0 :(得分:1)
遇到这种疑问时,从真实对象,行为和责任的角度思考通常很有用,所以你可以问问自己:
图片是否会查找文件位置?听起来不像Picture
或PictureFile
所期望的行为。
图片是否负责查找存储位置?我不这么认为,可能是PictureLocator
,FileLoader
等。
每当此方法属于服务层,应用程序层甚至数据层时,都取决于您的体系结构。虽然我不了解细节,但在服务层中成为实体似乎是一种非常简单的方法。