Веб-приложение JSF - уровень DAO со статическими методами - PullRequest
1 голос
/ 17 марта 2011

Привет. У меня вопрос о передовых методах и безопасном программировании при создании веб-приложения JSF.

У меня есть employee.xhtml страница с бином - EmployeeBean. Все переменные, которые я объявляю в компоненте поддержки, не статичны и имеют методы getter и setter. Например:

ArrayList <Employee> alEmployees = new ArrayList<Employee>();
int userId;

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

userId = //some value.
alEmployees = EmployeeDelegate.loadEmployees(userId);

Метод Delegate вызывает статический метод в классе DAO.

Не вызовут ли статические методы какие-либо проблемы с параллелизмом данных, когда приложение одновременно используют n пользователей? Я имею в виду, что userId 56 видит список userId 75, когда оба используют приложение одновременно? Действительно ли желательно иметь статические методы на уровне делегатов и DAO?

Пожалуйста, дайте мне знать, если мне неясно.

Спасибо

1 Ответ

1 голос
/ 17 марта 2011

Если EmployeeDelegate действительно не содержит какие-либо переменные класса, которые чувствительны к изменениям, вызванным вызовами методов, и / или влияют на поведение методов, то это безопасно.

Однако у вас есть еще одна серьезная проблема с этим подходом. Делегат должен быть interface, чтобы вы могли легко заменить его другой реализацией. Этот подход предполагает, что делегат вообще не является интерфейсом (поскольку он может иметь статические методы).

...