Ответы пользователя по тегу ООП
  • В какой момент пора использовать ООП?

    Вот ему пора было использовать ООП:
    www.gamedev.ru/projects/forum/?id=160897 (ссылки на скачивание исходников в первом посте, есть и фрагменты кода в других постах).

    У вас же не так все плохо?
    Ответ написан
    Комментировать
  • Какие книги читать в первый год обучения C#?

    Nipheris
    @Nipheris Куратор тега C#
    Работаю

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

    Nipheris
    @Nipheris Куратор тега C#
    Зависит от того, какую ответственность вы "отдаете" в класс. Если это так называемый "value object", т.е. некий неизменяемый композит, то лучше ему в конструктор передать сразу готовые значения. Если же это самостоятельный объект с внятным жизненным циклом и определенной ответственностью - тогда конечно логично чтобы он сам брал данные из репозитория.
    Вам нужно почитать про Dependency Injection - это как раз та "середина" между двумя альтернативами, что вы предложили в виде фрагментов кода. Обращаться к глобальном объекту репозитория - это также антипаттерн. Гораздо лучший вариант - это когда объекту при создании передается (!) репозиторий в конструкторе, а объект уже САМ делает выборки необходимых данных. Это как раз и есть удачный вариант спуска от общего к частному. Плюс, вся логика сосредоточена в классе - я всегда могу добавить новую Модель (если следовать вашим примерам), которая также берет репозиторий, но вытаскивает из него уже ДРУГИЕ сведения.
    Вот стандартный туториал, в котором роль вашего "класса" выполняет ASP.NET-контроллер, и он получает репозиторий в конструкторе: www.asp.net/web-api/overview/advanced/dependency-i...

    Вообще принцип всегда такой - если есть некоторая переменная или значение, то есть N точек, из которых можно получить к ней доступ. Чем меньше этих точек - и при этом вы можете без извращений реализовать нужную вам бизнес-логику - тем лучше. И чем ближе в коде эти точки расположены друг к другу - тем лучше. Всегда удобнее работать с кодом, когда данные конкретной сущности и логика их обработки умещаются хотя бы в одном файле.
    Ответ написан
    3 комментария
  • Entity Framework и ООП. Как правильно реализовать принцип согласованности?

    > Как правильно реализовать связь между Business и Database уровнями? Маппинг?
    А для чего вам EF тогда?
    > В случае использования маппинга как решить проблему сохранения, добавления позиций, если используется Entity Framework?
    Любая нормальная ORM имеет возможность мапать коллекции элементов в том или ином виде. Добавление позиции в коллекцию при правильном маппинге должно приводить к добавлению строк в соответствующую таблицу с нужными значениями внешних ключей.
    > при чем чтобы таблица была одна?
    насчет одной таблицы вообще не понял. Какая одна таблица?
    Ответ написан