Статические (общие в VB.NET) или обычные методы

2

Я хочу знать, какой из них предпочтительнее при кодировании для использования статических методов или обычных экземпляров, я предпочитаю использовать статические, если их мало, но если их было много, я начинаю сомневаться

Пример

EmployeeCollection EmpLst = EmployeeManager.GetAllEmployees();

или

EmployeeManager EmpMgr = new EmployeeManager();
EmployeeCollection EmpLst = EmpMgr.GetAllEmployees();

если у EmployeeManager есть много методов (выбирает удаление обновлений), нормально ли сделать их статичными.

и если это был обычный экземпляр. не будет недостатком, если объект инициируется каждый раз специально, если GetAllEmployees() используется в значительной степени.

Какой лучший подход к использованию?

Теги:

3 ответа

3
Лучший ответ

Если у вас много статических методов, я предполагаю, что вы не следуете принципам ООП. Статические методы полезны как методы factory или как вспомогательные методы. Но я бы избегал строить дизайн приложений поверх них.

  • 0
    но в приложении ASP.NET объект удаляется каждый раз, когда запрос завершается и отправляется. поэтому мне нужно инициировать объект каждый раз, когда я хочу вызвать метод, не будет ли это недостатком?
  • 2
    Прежде всего, вы должны заботиться о дизайне, а не о производительности. После того, как вы хорошо спроектировали, вы можете проверить, является ли производительность приемлемой, а если нет - только тогда вы можете начать рассматривать статические методы или любые другие подходы.
Показать ещё 1 комментарий
1

Возможно, вы захотите взглянуть на шаблоны factory и singleton, которые являются образцами творчества, задуманными для такого рода вещей. Для вашей проблемы я бы предложил использовать singleton, который обеспечивает однократное создание объекта.

Аннотация Factory

Singleton

(Ссылки на dofactory.com)

  • 1
    ИМХО, синглтоны сильно переоценены ...
  • 0
    Хотите уточнить это?
Показать ещё 3 комментария
0

В случае вашего метода GetEmployee я придерживаюсь статичности.

Обычно я использую static, если для этого метода не требуется доступ к каким-либо состояниям экземпляра и методам экземпляров, если это необходимо. Таким образом, я не использую методы экземпляра, если для метода не требуется состояние экземпляра.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню