Кіріспе

Java бағдарламалау тіліндегі объектінің түрі. Бағдарламалық жасақтауда, қарапайым Java объектісі (POJO) – ешқандай арнайы шектеулерге бағынбаған, кез келген қарапайым Java объектісі. Бұл термин 2000 жылдың қыркүйегінде Мартин Фаулер, Ребекка Парсонс және Джош Маккензилермен ұсынылды: "POJO" термині бастапқыда Java-ның негізгі объектілік үлгілерін, конвенцияларын немесе фреймворктерін қолданбайтын Java объектісін білдірді. Кейіннен бұл термин күрделі объектілік фреймворктардан өзгешеленетін, ортақ және түсінікті болу қажеттілігінен тілге тәуелсіз термин ретінде қабылданды. Термин жаңа мүмкіндіктерді пайдаланбайтын конструкциялар үшін ретронимдер жасау үшін акроним үлгісін жалғастырады:

JavaScript-те – "Қарапайым JavaScript объектісі"
Ruby-де – "Қарапайым Ruby объектісі" (PORO)
Perl-де – "Қарапайым құжаттама" (pod)
.NET Framework-те – "Қарапайым CLR объектісі" (POCO)
PHP-де – "Қарапайым PHP объектісі" (POPO)
Телефонияда – "Қарапайым телефон қызметі" (POTS)

Анықтама

Идеалды жағдайда 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) ететіндей.