Telah melihat beberapa pertanyaan serupa:
- Apa perbedaan antara JavaBean dan POJO?
- Apa Perbedaan Antara POJO (Obyek Jawa Kuno Biasa) dan DTO (Objek Transfer Data)?
Bisakah Anda juga memberi tahu saya konteks di mana mereka digunakan? Atau tujuan mereka?
Jawaban:
JavaBeans
JavaBean adalah kelas yang mengikuti konvensi JavaBeans seperti yang didefinisikan oleh Sun. Wikipedia memiliki ringkasan yang cukup bagus tentang apa itu JavaBeans :
POJO
Sebuah Plain Old Java Object atau POJO adalah istilah yang awalnya diperkenalkan untuk menunjuk objek Java sederhana yang ringan, tidak menerapkan
javax.ejb
antarmuka apa pun , yang bertentangan dengan EJB 2.x kelas berat (terutama Entity Beans, Kacang Sesi Stateless bukanlah IMO yang buruk). Hari ini, istilah ini digunakan untuk objek sederhana tanpa barang tambahan. Sekali lagi, Wikipedia melakukan pekerjaan yang baik dalam mendefinisikan POJO :Objek Nilai
Objek Nilai atau VO adalah objek seperti
java.lang.Integer
yang menyimpan nilai (karenanya nilai objek). Untuk definisi yang lebih formal, saya sering merujuk pada deskripsi Martin Fowler tentang Value Object :Objek Transfer Data
Obyek Transfer Data atau DTO adalah pola (anti) yang diperkenalkan dengan EJB. Alih-alih melakukan banyak panggilan jarak jauh pada EJB, idenya adalah untuk merangkum data dalam objek nilai yang dapat ditransfer melalui jaringan: Objek Transfer Data. Wikipedia memiliki definisi yang layak tentang Obyek Transfer Data :
Jadi, bagi banyak orang, DTO dan VO adalah hal yang sama (tetapi Fowler menggunakan VO untuk mengartikan sesuatu yang lain seperti yang kita lihat). Sebagian besar waktu, mereka mengikuti konvensi JavaBeans dan dengan demikian juga JavaBeans. Dan semuanya POJO.
sumber
class SomeClass { public String foo;public String bar; }
di dalam kelas dengan banyak logika yang rumit, pasti itu bukan JavaBean, itu tidak bisa berupa VO karena dapat diubah, mungkinkah itu DTO? meskipun itu tidak ditargetkan untuk pemanggilan jarak jauh dalam bentuk apa pun. Bisakah itu dianggap POJO?DTO vs VO
DTO - Objek transfer data hanyalah wadah data yang digunakan untuk mengangkut data antara lapisan dan tingkatan.
DTO terutama digunakan untuk mendapatkan data yang diangkut di jaringan secara efisien, bahkan dari JVM ke JVM lainnya.
DTO sering
java.io.Serializable
- untuk mentransfer data lintas JVM.VO - Objek Nilai [1] [2] mewakili dirinya sendiri set data dan mirip dengan Java enum. Identitas Objek Nilai didasarkan pada negara mereka daripada pada identitas objek mereka dan tidak berubah. Contoh dunia nyata adalah Color.RED, Color.BLUE, SEX.FEMALE dll.
POJO vs JavaBeans
[1] Java-Beanness dari POJO adalah bahwa atribut pribadinya semua diakses melalui getter dan setter publik yang sesuai dengan konvensi JavaBeans. misalnya
[2] JavaBeans harus mengimplementasikan Serializable dan memiliki konstruktor tanpa argumen, sedangkan di POJO tidak memiliki batasan ini.
sumber
Pada dasarnya,
DTO: "Objek transfer data" dapat berpindah antar lapisan yang berbeda dalam arsitektur perangkat lunak.
VO: "Nilai objek" memegang objek seperti Integer, Uang dll.
POJO: Obyek Jawa Kuno Biasa yang bukan objek khusus.
Java Beans: membutuhkan a
Java Class
untuk dapat serial, memilikino-arg
konstruktor dan pengambil dan penyetel untuk setiap bidangsumber
Kacang Jawa tidak sama dengan EJB.
The JavaBeans spesifikasi di Jawa 1.0 adalah usaha Sun untuk memungkinkan Jawa objek untuk dimanipulasi dalam IDE yang tampak seperti VB. Ada aturan yang ditetapkan untuk objek yang memenuhi syarat sebagai "Java Beans":
EJB datang kemudian. Mereka menggabungkan komponen terdistribusi dan model transaksional, berjalan dalam wadah yang mengelola benang, penyatuan, siklus hidup, dan menyediakan layanan. Mereka jauh dari Jawa Beans.
DTO muncul dalam konteks Java karena orang menemukan bahwa spesifikasi EJB 1.0 terlalu "cerewet" dengan database. Daripada melakukan bolak-balik untuk setiap elemen data, orang akan mengemasnya dalam Java Beans secara massal dan mengirimkannya.
POJO adalah reaksi terhadap EJB.
sumber
POJO : Ini adalah file java (kelas) yang tidak memperluas atau mengimplementasikan file java lainnya (kelas).
Bean : Ini adalah file java (kelas) di mana semua variabel bersifat pribadi, metode bersifat umum dan getter dan setter yang sesuai digunakan untuk mengakses variabel.
Kelas normal : Ini adalah file java (kelas) yang dapat terdiri dari variabel publik / pribadi / default / dilindungi dan yang mungkin atau mungkin tidak memperpanjang atau mengimplementasikan file java lain (kelas).
sumber
Bicara Pertama Tentang
Kelas Normal - itu berarti setiap kelas mendefinisikan itu normal di java itu berarti Anda membuat berbagai jenis properti metode dll.
Bean - Bean bukan apa-apa itu hanya objek dari kelas tertentu menggunakan kacang ini Anda dapat mengakses kelas java Anda sama seperti objek. .
dan setelah itu bicara tentang POJO yang terakhir
POJO - POJO adalah kelas yang tidak memiliki layanan apa pun itu hanya memiliki konstruktor default dan properti pribadi dan properti tersebut untuk menetapkan nilai metode penyetel dan pengambil yang sesuai. Ini bentuk pendek dari Plain Java Object.
sumber
perbedaan-antara-nilai-objek-pola-dan-data-transfer-pola
sumber