При проектировании класса и конструкторов у меня возникает вопрос о получении записи.Конструктор классов и получение дизайна
В качестве примера, если у меня есть автомобиль класса
public Car
{
...
}
У меня есть возможность создать конструктор, который мог бы получить определенный экземпляр автомобиля, например:
public Car(int carID)
{
//Get car from database
}
Или я мог бы напишите открытый метод, чтобы получить автомобиль:
public Car GetCarByID(int carID)
{
//Get car from database
}
Есть ли предпочтительный (наилучший способ) метод для получения экземпляра класса? Код, кажется, читает уборщика, чтобы сделать получить экземпляр объекта:
Car MyCar = new Car(5);
против
Car MyCar = new Car();
MyCar.GetCarByID(5);
В этом случае у меня будет класс под названием car, который обрабатывает всю базовую информацию. (Как и идентификатор). Тогда я бы назвал класс CarCollection, который содержит автомобили в коллекции. В этом классе у меня был бы метод GetCarById. В этом методе я бы искал коллекцию автомобилей и возвращал автомобиль с этим идентификатором. Этот вопрос очень основан на мнениях, хотя он здесь не для темы. – deathismyfriend
Разделение проблем, если ваш класс 'car' действительно является классом, который содержит информацию о' car', вы должны использовать слой доступа к данным для создания объектов 'car', не требуя, чтобы' car' знал о базе данных , –
Зачем автомобилю знать, как получить себя из базы данных? Ни одно из ваших предложений не является хорошим и является нарушением СРП. –