这种方法是否适合服务层?

时间:2014-04-25 15:01:05

标签: design-patterns service-layer

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?

我很难理解这样的方法应该属于它自己的服务层而不是它的类。

1 个答案:

答案 0 :(得分:1)

遇到这种疑问时,从真实对象,行为和责任的角度思考通常很有用,所以你可以问问自己:

  • 图片是否会查找文件位置?听起来不像PicturePictureFile所期望的行为。

  • 图片是否负责查找存储位置?我不这么认为,可能是PictureLocatorFileLoader等。

每当此方法属于服务层,应用程序层甚至数据层时,都取决于您的体系结构。虽然我不了解细节,但在服务层中成为实体似乎是一种非常简单的方法。