Plain old CLR object (Plain old CLR object)

Перейти к навигации Перейти к поиску

В программной инженерии, Plain Old CLR Object (POCO) — простой объект, созданный в среде Common Language Runtime (CLR) в .NET Framework и свободный от наследования или атрибутов. Это понятие часто используется для противопоставления сложным или специализированным объектам, которые часто используются в различных библиотеках классов ORM.[1] По сути, POCO не имеет никаких зависимостей от внешних библиотек классов.

Происхождение

[править | править код]

Название Plain Old CLR Object обыгрывает другое название, Plain Old Java Object (POJO) из мира Java EE. Название POJO было придумано в 2000 году Мартином Фаулером.[2] POCO иногда расшифровывают как Plain Old C# Object, но это не совсем верно, поскольку POCO можно создавать на любом языке, поддерживающим CLR. Иногда используется альтернативная аббревиатура — Plain Old .NET Object.[3]

Преимущества

[править | править код]

Некоторые преимущества POCO:

  • простота хранения, сериализации и передачи данных через слои;
  • неразрывно связан с внедрением зависимостей и паттерном хранилище;
  • минимальные сложность и зависимость от других уровней (высокие уровни заботятся только о POCO, а POCO ни о чём не заботятся). Это обеспечивает слабую связь;
  • за счет упрощения упрощается тестируемость.
  1. Смотрите, например, эту статью MSDN: Data Contracts — POCO Support Архивная копия от 17 февраля 2017 на Wayback Machine
  2. Смотрите забавную предысторию здесь: http://www.martinfowler.com/bliki/POJO.html Архивная копия от 26 января 2021 на Wayback Machine
  3. Смотрите, например, ссылку на POCO в этом официальной документации: Spring.net Reference Documentation Архивная копия от 27 января 2019 на Wayback Machine