Re[2]: Проектирование класса на примере User
От: Kalastiuz Ниоткуда  
Дата: 13.07.09 13:08
Оценка:
Здравствуйте, komaz, Вы писали:

K>Почему методы IsValidUser, IsExist и IsActive что-то принимают? Они статические? Или класс User на самом деле не то чем кажется?


Могут быть и методы без параметров, а можно перегрузить и так так. А можно в конструкторе инициализировать объект данными о логине и пароле. Это не столь важно.
Важно понять идею и то как же все таки правильнее реализовать, что бы в последствии можно было использовать классы повторно.

В случае если я опишу метод следующим образом:

  public Boolean IsValidUser(String login, String password)
  {
     ...
    String query = @"SELECT user_id FROM tbl_users WHERE tbl_users.login = @login AND tbl_users.password = @password";
     ...
  }


То какова вероятность того, что пользователь назовет таблицу и имена полей именно так, а не например users? Крайне мала.
Значит привязывать запрос к определенной таблице/полям не совсем правильно. А если пользователю придется переопределять метод в дочернем классе, то тогда можно оставить тело метода пустым. Пусть переопределяет как хочет. Такой вариант, тоже не особо нравится.

С другой стороны, если в каком-то конфиге сопоставить данные о таблице и ее полях. Получится громоздкий конфиг файл. Таблица пользователей же не одна да и полей можно быть какое-то количество.

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