В чём главное отличие Manager от Service
От: vaa  
Дата: 14.02.23 07:49
Оценка:
В проектах на сишарпе часто вижу такие классы как PersonManager.
В чем возможная отличительная семантика от PersonService
☭ ✊ В мире нет ничего, кроме движущейся материи.
Re: В чём главное отличие Manager от Service
От: Qulac Россия  
Дата: 14.02.23 08:44
Оценка: :)
Здравствуйте, vaa, Вы писали:

vaa>В проектах на сишарпе часто вижу такие классы как PersonManager.

vaa>В чем возможная отличительная семантика от PersonService

Service обслуживает Person, а Managerа обслуживают Personы.
Программа – это мысли спрессованные в код
Re: В чём главное отличие Manager от Service
От: Буравчик Россия  
Дата: 14.02.23 09:17
Оценка: 17 (2) +1
Здравствуйте, vaa, Вы писали:

vaa>В проектах на сишарпе часто вижу такие классы как PersonManager.

vaa>В чем возможная отличительная семантика от PersonService

Одно и то же.

Я бы сказал, что Service точно должен быть stateless.
А Manager может иметь какое-то состояние.
Best regards, Буравчик
Re: В чём главное отличие Manager от Service
От: vsb Казахстан  
Дата: 14.02.23 09:24
Оценка: 17 (2)
Вообще скорей всего это синонимы.

Если пытаться разделять, я бы так сказал:

Manager управляет объектами. Загрузить, сохранить, смерджить и тд. Вообще обычно такой класс называется Repository, если речь идёт о чём-то вроде БД.

Service предоставляет некие сервисы для объектов. К примеру определить полное имя человека или проверить контрольную сумму ИИНа. ООП парадигма предписывает подобный функционал класть рядом с данными, то бишь в класс Person, но некоторые практикуют альтернативный подход, когда поведение и данные разделяются. Вот PersonService можно считать неким универсальным именем для поведения, которое связано с классом Person.
Re: В чём главное отличие Manager от Service
От: IncremenTop  
Дата: 22.02.23 18:16
Оценка: 5 (1)
Здравствуйте, vaa, Вы писали:

vaa>В проектах на сишарпе часто вижу такие классы как PersonManager.


За такие названия надо сразу отрубать руки. И лучше ноги, чтобы не размножался.
Я на проектах часто запрещал такие нейминги в принципе. Они ничего не дают.
Re[2]: В чём главное отличие Manager от Service
От: gyraboo  
Дата: 22.02.23 19:04
Оценка:
Здравствуйте, vsb, Вы писали:

vsb>Manager управляет объектами. Загрузить, сохранить, смерджить и тд. Вообще обычно такой класс называется Repository, если речь идёт о чём-то вроде БД.


vsb>Service предоставляет некие сервисы для объектов. К примеру определить полное имя человека или проверить контрольную сумму ИИНа. ООП парадигма предписывает подобный функционал класть рядом с данными, то бишь в класс Person, но некоторые практикуют альтернативный подход, когда поведение и данные разделяются. Вот PersonService можно считать неким универсальным именем для поведения, которое связано с классом Person.


В джава энтерпрайзе такое практикуется, называется анемичная модель. Т.е. доменные классы анемичные, хилые, содержат лишь поля, а вся бизнес-логики (мощь) находится в сервисах. Тем самым ООП подменяется процедурным стилем. Попытки делать настоящее ООП, например по методологии DDD, обычно ни к чему хорошему не приводит, потому что у среднего разработчика мозговых силёнок не хватает, чтобы запилить правильное DDD, выходит какаха. Поэтому джависты пилят примитивную анемичную процедурную парадигму, гребут бабло и не парятся такой ерундой, как тръу ООП. Благо, что бизнесу другого и не надо, чем проще — тем надёжнее, тем более и других задач хватает — транзакционность, реактивность, ИБ и прочие энтерпрайзные практики соблюдать, которые гораздо важнее для бизнеса, чем сомнительный ООП.
Re[3]: В чём главное отличие Manager от Service
От: SkyDance Земля  
Дата: 22.02.23 20:25
Оценка:
G>чем проще — тем надёжнее, тем более и других задач хватает

Золотые слова.
Нет ничего хуже в поддержке, чем сложная система с кучей протекающих во все стороны абстракций, дыр между слоями и т.п..
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.