2016-03-04 2 views
0

Это мой класс:Получить экземпляр объекта, относится ли он к классу?

public class Boots 
{ 
    public string Name { get; private set; } 
    public int Size { get; private set; } 

    public Boots(string Name, int Size) 
    { 
     this.Name = Name; 
     this.Size = Size; 
    } 
} 

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

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

public static Boots GetBoots(string Name) 
{ 
    //Get boot from db and creates a Boots by calling its constructor 
    return new Boots(.....); 
} 
+0

Поиск «активной записи», это обсуждалось много раз раньше. – CodeCaster

+3

Вы можете создать «BootsRepository», который извлекает и сохраняет экземпляры «Boots». (Я пытаюсь найти лучшее имя, чем «Boots», потому что множественные коллекции этого класса будут семантически странными. Может быть, назовите его «BootPair»?) – David

+0

Вам понадобится какой-то ffactory, объекты памяти из ваших объектов базы данных. Это едва ли относится к фактической IMO класса объектов. – HimBromBeere

ответ

1

В принципе вопрос это хорошо, но есть недостаток информации, если, например, вы используете некоторые ORM, репозитории или это просто запросы одата, потому что я уверен, что у вас уже есть куча кода :) Мой подход будет использовать шаблон репозитория для этих случаев, но для такого простого случая вы также можете подумать об активной схеме записи , Не забудьте сохранить вещи просто и не над дизайном, если нет необходимости.

+0

Спасибо за ответ. Я рассмотрю шаблон репозитория и активный шаблон записи. Предположим, что я не использую ORM и просто получаю набор данных из команды базы данных, возвращенной функции GetBoots. Если у вас есть время, не могли бы вы привести мне пример двух моделей, которые вы предложили? –

+0

Прежде всего, если вы используете MS SQL, я предлагаю использовать Хранимую процедуру вместо функции для такого рода вещей. С точки зрения перспективы функции должны использоваться больше для вычислений, а не для сбора данных. Во-вторых, в этом случае я бы избегал шаблона активной записи и перешел с репозиторием. Я предполагаю, что вы используете ADO.NET, так что посмотрите на эту статью: http://blog.gauffin.org/2013/01/04/ado-net-the-right-way/ –

+0

Спасибо за помощь –

Смежные вопросы