Определение' POCO'


может ли кто-нибудь определить, что именно означает "POCO"? Я сталкиваюсь с этим термином все чаще и чаще, и мне интересно, касается ли это только простых классов или это означает что-то еще?

10 212

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;
    }

}

POCO означает "простой старый объект CLR".

чтобы добавить другие ответы, все термины POxx, похоже, происходят из горшков (обычные старые телефонные услуги).

POX, используемый для определения простого (простого старого) XML, а не сложного многослойного материала, связанного с REST, SOAP и т. д., был полезным и смутно забавным термином. PO (insert language of choice)o термины довольно изношены шутка тонкая.

в .NET POCO - это "простой старый объект CLR". Это не простой старый объект C#'...

в Java land обычно "PO "означает"простой старый". Остальное может быть сложно, поэтому я предполагаю, что ваш пример (в контексте Java) является "простым старым объектом класса".

некоторые другие примеры

  • POJO (обычный старый объект java)
  • POJI (простой старый интерфейс java)

интересные. Единственное, что я знал, что связано с программированием и было POCO в нем-это поко C++ в рамках.

в терминах WPF MVVM класс POCO-это класс, который не запускает события PropertyChanged

хотя я уверен, что POCO означает простой старый объект класса или простой старый объект C для 99,9% людей здесь, POCO также является аниматором Pro (Autodesk), построенным на языке сценариев.