Существует некоторый класс User в котором описан метод IsValidUser(login, password). В реализации метода необходимо подключаться к БД и опеределять существует ли пользователь с параметрами логин и пароль.
Необходимо реализовать класс так, чтобы его можно было повторно использовать и в других приложениях. Но в других приложениях может измениться имя таблицы и/или имена полей в таблице.
Возникли затруднения с самой его реализацией и на ум проходят два выхода, между которыми не могу сделать выбор.
1. В других приложениях описывать какой-то дочерний класс от User и в новом классе переопределять метод IsValidUser, но тогда толку от реализации логики в базовом классе, если его все равно придется переписать.
2. В каком-то конфиг-классе или в настройках приложения или в настройках "первого запуска приложения" (не столь важно) указывать имя таблицы пользователей и имена полей login и password. И в реализации метода использовать именно эти значения.
Класс User взят в качестве примера, в библиотеке может быть большое количество классов реализованных по такому-же принципу. Даже в этом же классе, например методы: IsExist(login), IsActive(user_id) и т.п.