Скажем, «общая картина» субъекта хозяйствования похожа на
{
id: "117ed0fd-2546-4775-8ab6-d7671694d410",
foo: 5,
bar: "something",
baz: [1.0, -4.3]
}
, но по какой-то причине мы решили, что должны быть foo service
, bar service
и baz service
, которыевладеть соответствующими частями данных таким образом, как
{
id: "117ed0fd-2546-4775-8ab6-d7671694d410",
foo: 5
}
{
id: "117ed0fd-2546-4775-8ab6-d7671694d410",
bar: "something"
}
{
id: "117ed0fd-2546-4775-8ab6-d7671694d410",
baz: [1.0, -4.304]
}
Однако, скажем, что я замечаю в системе то, что
- Данные всегда должны объединяться, а некоторая бизнес-логика применяется для выполнения чего-либо значимого.Существуют отдельные сервисы, вся работа которых заключается в упаковке данных из вышеупомянутых сервисов.
- Вышеупомянутые сервисы должны «понимать» данные друг друга, чтобы выполнять значимую работу со своими собственными данными.Например, барная служба не может просто знать, что «foos - это что-то с идентификатором и другими свойствами, которые мне не нужны для понимания».
Вы бы сказали, что это запах дизайна?