получение только имени сотрудника по его удостоверению личности. Итак, один статический класс только с одним методом? - PullRequest
0 голосов
/ 13 июля 2009

Мне нужно узнать имя сотрудника по его идентификатору, обратившись к БД. Кажется, нужен класс. Но класс только с одним методом ..... это хорошая идея или что еще вы предлагаете?

Ответы [ 4 ]

1 голос
/ 13 июля 2009

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

Лучше всего использовать обычный старый класс, который вы можете позже расширить. Статические классы могут привести к искушению иметь статические переменные, что может привести к ошибкам в потоке. Лично мне нравится избегать этого.

Я бы добавил это как комментарий к ответу Тило, если бы у меня было достаточно повторений: (* ​​1005 *

1 голос
/ 13 июля 2009

Разумно использовать один класс на таблицу / тип объекта. Я полагаю, этот класс будет называться классом DAO.

Если у этого класса пока только один метод, это тоже хорошо. Вы можете добавить больше позже.

Не нужно делать метод статичным.

В частности, вы можете захотеть сделать его обычным классом (с экземплярами), чтобы вы могли вводить зависимости, такие как DataSource или Connection.

public class EmployeeDAO {

    private final DataSource ds;

    public EmployeeDAO(DataSource ds){
         this.ds = ds;
    }

    public String getEmployeeNameByID(int id) { ... }

 }
1 голос
/ 13 июля 2009

Если это единственная информация о сотруднике, которая вам нужна, то да, вам нужен только статический класс с одним статическим методом:

public static class EmployeeRepository {
    public static string GetEmployeeNameByID(int id) { ... }
}

Когда вам нужно больше, вы можете делать больше.

0 голосов
/ 13 июля 2009

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...