Я хочу знать, какой из них предпочтительнее при кодировании для использования статических методов или обычных экземпляров, я предпочитаю использовать статические, если их мало, но если их было много, я начинаю сомневаться
Пример
EmployeeCollection EmpLst = EmployeeManager.GetAllEmployees();
или
EmployeeManager EmpMgr = new EmployeeManager();
EmployeeCollection EmpLst = EmpMgr.GetAllEmployees();
если у EmployeeManager есть много методов (выбирает удаление обновлений), нормально ли сделать их статичными.
и если это был обычный экземпляр. не будет недостатком, если объект инициируется каждый раз специально, если GetAllEmployees() используется в значительной степени.
Какой лучший подход к использованию?
Если у вас много статических методов, я предполагаю, что вы не следуете принципам ООП. Статические методы полезны как методы factory или как вспомогательные методы. Но я бы избегал строить дизайн приложений поверх них.
Возможно, вы захотите взглянуть на шаблоны factory и singleton, которые являются образцами творчества, задуманными для такого рода вещей. Для вашей проблемы я бы предложил использовать singleton, который обеспечивает однократное создание объекта.
(Ссылки на dofactory.com)
В случае вашего метода GetEmployee я придерживаюсь статичности.
Обычно я использую static, если для этого метода не требуется доступ к каким-либо состояниям экземпляра и методам экземпляров, если это необходимо. Таким образом, я не использую методы экземпляра, если для метода не требуется состояние экземпляра.