Мне поручено поддерживать приложение C# Winforms, которое использует BusinessObjects (не содержащее логики, только свойства) и BusinessLayer с классами ("Helpers"), которые манипулируют этими объектами.
Вопрос: следует ли передать BusinessObject в конструктор Helpers, а затем внутри конструктора создать экземпляр общедоступной переменной Entity Helper ИЛИ следует ли просто передать Entity методам, которые с ним воздействуют?
Сценарий 1: К конструктору
Car myCar = new Car();
CarHelper ch = new CarHelper(myCar);
ch.Wash(suds);
ch.Upgrade(upgradeKit);
ch.Save();
Сценарий 2: К методам, которые воздействуют на Сущность
Car myCar = new Car();
CarHelper ch = new CarHelper();
ch.Wash(myCar, suds);
ch.Upgrade(myCar, upgradeKit);
ch.Save(myCar);
Две основные проблемы, которые у меня есть со Сценарием 1: A) Следующий разработчик должен копаться в классе CarHelper, чтобы понять, что у него есть общедоступное свойство доступа Car, на которое он ссылается в методах, которые в нем нуждаются. Это еще больше запутывает класс Helper в том смысле, что каждый метод должен проверять «нулевое» свойство Car перед выполнением своих обязанностей... B) Если между операциями существует куча другого кода, может стать неясным, что ch.Wash( ) на самом деле делает... действует ли он вообще на объект Car...?
Что все думают???