DDD Где поставить конвертацию изображений - PullRequest
0 голосов
/ 16 декабря 2010

У меня есть приложение, которое получает изображение в двоичном формате.Затем это приложение должно преобразовать это изображение в определенную размерность и сохранить как форму (оригинальную и конкретную) на диск.В этом случае приложение также должно хранить информацию об этой картинке в базе данных.

Где разместить логику преобразования: на уровне приложения, на уровне домена или, возможно, на уровне инфраструктуры?

Ответы [ 3 ]

0 голосов
/ 17 декабря 2010

«Сервис», кажется, хорошо подходит для вашего контекста: http://dddcommunity.org/node/125

0 голосов
/ 03 января 2011

Вы должны поместить логику преобразования в слой инфраструктуры, если Ваш домен не предназначен для преобразования изображений.

Примерно так:

//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);
0 голосов
/ 16 декабря 2010

Хм - возможно, дубликат этого вопроса? посмотрите и посмотрите, что вы думаете: преобразование объекта (изображения) в другой объект (байт) в три слоя (3 уровня)

...