В программной инженерии, 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