Объяснение ПОСТЕПЕННО

Я задаюсь вопросом, может ли кто-либо дать серьезное объяснение (с примером) ПОСТЕПЕННО (Простой Объект CLR). Я нашел краткое объяснение на Википедию, но она действительно не дает серьезное объяснение.

23
задан Chase Florell 29 August 2018 в 13:38
поделиться

3 ответа

Вместо того, чтобы называть их POCO , я предпочитаю называть их объектами, игнорирующими персистентность .

Поскольку их работа проста, им не нужно заботиться о том, для чего они используются или как они используются.

Лично я считаю, что POCO - это просто еще одно модное слово (например, Web 2.0 - не начинайте с этого) для публичного класса с простыми свойствами.

Я всегда использовал объекты такого типа, чтобы поддерживать бизнес-состояние.

Основные преимущества POCO действительно видны, когда вы начинаете использовать такие вещи, как шаблон репозитория, ORM и внедрение зависимостей.

Другими словами, вы можете создать ORM (скажем, EF), который извлекает данные из где-то (база данных, веб-служба и т. Д.), А затем проецирует эти данные в объекты. (POCO).

Эти объекты могут быть переданы дальше вниз по стеку приложения на уровень сервиса, а затем на веб-уровень.

Тогда, если однажды вы решите переключиться на nHibernate, вам вообще не придется прикасаться к своим POCO, единственное, что нужно будет изменить, - это ORM.

Отсюда и термин «настойчивые игнорирующие» - им все равно, для чего они используются или как они используются.

Подводя итог, плюсы:

  • Позволяет использовать простой механизм хранения данных, упрощает сериализацию / передачу по уровням
  • Идет рука об руку с внедрением зависимостей, шаблоном репозитория и ORM. Гибкость.
  • Минимальная сложность и зависимости от других уровней. (более высокие уровни заботятся только о POCO, POCO ни о чем не заботятся).Слабая связь
  • Простая тестируемость (для тестирования домена не требуется заглушка).

Надеюсь, что это поможет.

46
ответ дан 29 November 2019 в 01:43
поделиться

Пример POCO:

class Person {

    public string FirstName { get; set; }
    public string LastName { get; set; }
    public string EmailAddress { get; set; }

}
-2
ответ дан 29 November 2019 в 01:43
поделиться

Вам необходимо указать более подробную информацию, например, контекст, в котором вы планируете использовать POCO. Но основная идея состоит в том, что вы будете создавать простые объекты, содержащие только необходимые данные / код. Эти объекты не будут содержать никакого «багажа», такого как аннотации, дополнительные методы, базовые классы и т. Д., Которые в противном случае могли бы потребоваться (например) фреймворком.

3
ответ дан 29 November 2019 в 01:43
поделиться