Кіріспе
Java бағдарламалау тіліндегі объектінің түрі. Бағдарламалық жасақтауда, қарапайым Java объектісі (POJO) – ешқандай арнайы шектеулерге бағынбаған, кез келген қарапайым Java объектісі. Бұл термин 2000 жылдың қыркүйегінде Мартин Фаулер, Ребекка Парсонс және Джош Маккензилермен ұсынылды: "POJO" термині бастапқыда Java-ның негізгі объектілік үлгілерін, конвенцияларын немесе фреймворктерін қолданбайтын Java объектісін білдірді. Кейіннен бұл термин күрделі объектілік фреймворктардан өзгешеленетін, ортақ және түсінікті болу қажеттілігінен тілге тәуелсіз термин ретінде қабылданды. Термин жаңа мүмкіндіктерді пайдаланбайтын конструкциялар үшін ретронимдер жасау үшін акроним үлгісін жалғастырады:
In software engineering, a plain old Java object (POJO) is an ordinary Java object, not bound by any special restriction. The term was coined by Martin Fowler, Rebecca Parsons and Josh MacKenzie in September 2000:
</blockquote>
The term "POJO" initially denoted a Java object which does not follow any of the major Java object models, conventions, or frameworks. It has since gained adoption as a language agnostic term, because of the need for a common and easily understood term that contrasts with complicated object frameworks. The term continues an acronym pattern to coin retronyms for constructs that do not use fancy new features:
"Plain old JavaScript object" in JavaScript
"Plain old Ruby object" (PORO) in Ruby
"Plain old Documentation" (pod) in Perl
Plain old CLR object (POCO) in the NET Framework
"Plain old PHP object" (POPO) in PHP
Plain old telephone service (POTS) in telephony
JavaScript-те – "Қарапайым JavaScript объектісі"
Ruby-де – "Қарапайым Ruby объектісі" (PORO)
Perl-де – "Қарапайым құжаттама" (pod)
.NET Framework-те – "Қарапайым CLR объектісі" (POCO)
PHP-де – "Қарапайым PHP объектісі" (POPO)
Телефонияда – "Қарапайым телефон қызметі" (POTS)
In software engineering, a plain old Java object (POJO) is an ordinary Java object, not bound by any special restriction. The term was coined by Martin Fowler, Rebecca Parsons and Josh MacKenzie in September 2000:
</blockquote>
The term "POJO" initially denoted a Java object which does not follow any of the major Java object models, conventions, or frameworks. It has since gained adoption as a language agnostic term, because of the need for a common and easily understood term that contrasts with complicated object frameworks. The term continues an acronym pattern to coin retronyms for constructs that do not use fancy new features:
"Plain old JavaScript object" in JavaScript
"Plain old Ruby object" (PORO) in Ruby
"Plain old Documentation" (pod) in Perl
Plain old CLR object (POCO) in the NET Framework
"Plain old PHP object" (POPO) in PHP
Plain old telephone service (POTS) in telephony
Анықтама
Идеалды жағдайда POJO – Java тілінің сипаттамаларымен шектелгеннен басқа, ешқандай шектеуге бағынбайтын Java нысаны; яғни, POJO міндетті түрде алдын ала белгіленген сыныптарды кеңейтуі керек емес, мысалы: `public class Foo extends javax.servlet.http.HttpServlet {` және алдын ала белгіленген интерфейстерді іске асыруы керек емес, мысалы: `public class Bar implements javax.ejb.EntityBean {` сондай-ақ, алдын ала белгіленген түсіндірмелерді қамтуы керек емес, мысалы: `@javax.persistence.Entity public class Baz {`. Дегенмен, техникалық қиындықтар мен басқа да себептерге байланысты, POJO-ға сәйкес деп сипатталатын көптеген бағдарламалық өнімдер немесе фреймворктер, тұрақтылық сияқты мүмкіндіктердің дұрыс жұмыс істеуі үшін алдын ала белгіленген түсіндірмелерді қолдануды әлі де талап етеді. Егер нысан (немесе класс) кез келген түсіндірмелер қосылғанға дейін POJO болса және түсіндірмелер алынған соң POJO статусына оралса, оны POJO деп санауға болады. Осылайша, негізгі нысан POJO болып қалады, себебі оның ерекше сипаттамалары жоқ (мысалы, іске асырылған интерфейс), оны "Арнайы Java нысаны" (SJO немесе (sic) SoJO) ететіндей.
Extend prespecified classes, as inpublic class Foo extends javax. servlet. http. HttpServlet {
Implement prespecified interfaces, as inpublic class Bar implements javax. ejb. EntityBean {
Contain prespecified annotations, as in@javax. persistence. Entity public class Baz {
However, due to technical difficulties and other reasons, many software products or frameworks described as POJO compliant actually still require the use of prespecified annotations for features such as persistence to work properly. The idea is that if the object (actually class) were a POJO before any annotations were added, and would return to POJO status if the annotations are removed then it can still be considered a POJO. Then the basic object remains a POJO in that it has no special characteristics (such as an implemented interface) that makes it a "Specialized Java Object" (SJO or (sic) SoJO).