Saltu al enhavo

Plain Old Java Object

El Vikipedio, la libera enciklopedio

En Programara inĝenierarto, POJO estas akronimo por Plain Old Java Object. La nomo estas uzata por emfazi ke donita objekto estas objekto ordinara en Java, ne objekto speciala. La termino estis elpensita de Martin Fowler, Rebecca Parsons kaj Josh MacKenzie en septembro 2000:

We wondered why people were so against using regular objects in their systems and concluded that it was because simple objects lacked a fancy name. So we gave them one, and it's caught on very nicely.

("Ni nin demandis kial homoj malakceptis tiom uzi objektojn regulajn en iliaj sistemoj kaj ni estas konkludinta ke ĝi estis ĉar objektoj simpla mankis nomoj fantazian. Do ni estas doninta iun al ili, kaj ĝi estas fariĝinta populara kun multe da precizeco.")[1]

La termino "POJO" komence indikis Java-objekton kiu ne sekvas iuj ajn el la ĉefaj modeloj, konvencioj, aŭ frameworks de Java-objekto; hodiaŭ oni povas uzi "POJO" ankaŭ kiel akronimo por "Plain Old Javascript Object". Ĉikaze la termino indikas Javascript-objekto de simila genealogio.[2]

La termino daŭras la skemon de terminoj pli malnovaj por teknologioj kiuj ne uzas novajn trajtoj fantaziajn, kiel POTS (Plain Old Telephone Service) en telefonio, PODS (Plain Old Data Structures) difinitaj en C++ sed uzantaj nur trajtojn de la lingvo C, kaj POD (Plain Old Documentation) en Perl. La ekvivalento al POJO sur la Microsoft .NET estas Plain Old CLR Object (POCO).[3] Por PHP, ĝi estas Plain Old PHP Object (POPO).[4]

Difino

Parolante ideale, POJO estas Java-objekto ne ligita de iu ajn restrikto krom tiuj devigitaj de la Java Language Specification. En aliaj parolas, POJO devas:

  1. Ne plilongigi klasojn prespecifita, kiel en
    public class Foo extends javax.servlet.http.HttpServlet { ...
    
  2. Ne implementi interfacojn prespecifita, kiel en
    public class Bar implements javax.ejb.EntityBean { ...
    
  3. Ne enhavi prinotaĵojn prespecifita, kiel en
    @javax.persistence.Entity public class Baz { ...
    

Tamen, pro malfacilaĝoj teknikaj kaj aliaj kialoj, multaj programaro-produktoj aŭ frameworks priskribataj kiel akordiĝintaj kun POJO ankoraŭ postulas fakte la uzon de prinotaĵoj prespecifitaj por trajtoj kiel persisto por funkcii ĝuste. La ideo estas ke se la objekto (fakte klaso) estis POJO antaŭ ol iu ajn prinotaĵoj estis aldonata, kaj revenus al stauso de POJO se la prinotaĵoj estas rorigitaj, do ĝi povas ankoraŭ esti konsiderata POJO. Do la objekto baza restas POJO en la senso ke ĝi ne havas trajtojn specialajn (kiel interfacon implementata) kiuj faras ĝin "Specialized Java Object" (SJO aŭ (sic) SoJO).

Mencioj

Ŝablono:Reflist

  1. MF Bliki: POJO. MartinFowler.com. Alirita 2014-08-22 .
  2. Return of the POJO: Plain ‘Ole JavaScript (2006-07-17). Alirita 2014-08-23 .
  3. POCO Support. microsoft.com. Alirita 2014-08-24 .
  4. Jan Kneschke (2007-02-19) typesafe objects in PHP. kneschke.de. Alirita 2014-08-24 .