Определение' POCO'
может ли кто-нибудь определить, что именно означает "POCO"? Я сталкиваюсь с этим термином все чаще и чаще, и мне интересно, касается ли это только простых классов или это означает что-то еще?
10 ответов:
"Обычный Старый Объект C#"
просто обычный класс, никаких атрибутов, описывающих проблемы инфраструктуры или другие обязанности, которые не должны иметь ваши доменные объекты.
EDIT-как заявили другие ответы, это технически "простой старый объект CLR", но я, как и комментарии Дэвида Арно, предпочитаю" простой старый объект класса", чтобы избежать связей с конкретными языками или технологиями.
чтобы уточнить: другими словами, они не являются производными от какой-то специальный базовый класс, ни возвращают ли они какие-либо специальные типы для своих свойств.
большинство людей сказали это-простой старый объект CLR (в отличие от более раннего POJO - простой старый объект Java)
POJO один вышел из EJB, который требовал, чтобы вы наследовали от определенного родительского класса для таких вещей, как объекты value (что вы получаете от запроса в ORM или аналогичном), поэтому, если вы когда-либо хотели перейти от EJB (например, к Spring), вы были набиты.
POJO-это просто классы, которые не заставляют наследование или любую разметку атрибутов заставлять их "работать" в какие бы рамки вы ни использовали.
POCO's такие же, за исключением in. NET.
Как правило, он будет использоваться вокруг ORM-более старых (и некоторых текущих) требует, чтобы вы наследовали от определенного базового класса, который связывает вас с этим продуктом. Более новые из них не (nhibernate - это вариант, который я знаю) - вы просто делаете класс, регистрируете его в ORM, и вы отключены. Гораздо проще.
Я могу ошибаться на этот счет.. но в любом случае, я думаю, что POCO просто старый
классCLR объект и он исходит от POJO простой старый объект Java. POCO-это класс, который содержит данные и не имеет поведения.вот пример, написанный на C#:
class Fruit { public Fruit() { } public Fruit(string name, double weight, int quantity) { Name = name; Weight = weight; Quantity = quantity; } public string Name { get; set; } public double Weight { get; set; } public int Quantity { get; set; } public override string ToString() { return Name.ToUpper() + " (" + Weight + "oz): " + Quantity; } }
чтобы добавить другие ответы, все термины POxx, похоже, происходят из горшков (обычные старые телефонные услуги).
POX, используемый для определения простого (простого старого) XML, а не сложного многослойного материала, связанного с REST, SOAP и т. д., был полезным и смутно забавным термином. PO (insert language of choice)o термины довольно изношены шутка тонкая.
в Java land обычно "PO "означает"простой старый". Остальное может быть сложно, поэтому я предполагаю, что ваш пример (в контексте Java) является "простым старым объектом класса".
некоторые другие примеры
- POJO (обычный старый объект java)
- POJI (простой старый интерфейс java)
интересные. Единственное, что я знал, что связано с программированием и было POCO в нем-это поко C++ в рамках.