DDD在何处进行图像转换

时间:2010-12-16 18:18:09

标签: architecture domain-driven-design

我有应用程序以二进制格式获取图像。然后,此应用程序必须将此图像转换为特定的dimmension并将形式(原始和特定)保存到磁盘。在这种情况下,应用程序也必须在数据库中存储有关此图片的信息。

在哪里放置转换逻辑:在应用层,在域层或可能在基础架构层?

3 个答案:

答案 0 :(得分:0)

嗯 - 可能是这个问题的重复?看看你的想法:convert of the object (image) to another object (Byte) in three layers(3-tier)

答案 1 :(得分:0)

鉴于您的背景,

«服务»似乎很合适: http://dddcommunity.org/node/125

答案 2 :(得分:0)

您应该将转化逻辑放入基础架构层,除非您的域名是关于转换图片。

这样的事情:

//domain
public class Image{
  public Image(string fileName){
    FileName=fileName;
  }
  public string FileName{get;private set;}
}

//infrastructure
public class ImageConvertor:ICanConvertImages{
  public byte[] BmpToJpeg(byte[] img){
    throw new NotImplementedException("haa haa");
  }
}

//application
var bmpImg=PullBytesFromNowhere();
var jpegImg=convertor.BmpToJpeg(img);
var fileName=SaveToFile(jpegImg);
var image=new Image(fileName);