Kode Bau 40 — DTO

DTO banyak digunakan, dan mereka 'memecahkan' masalah nyata, bukan?

Masalah

  • Obyek Anemia
  • Data Tidak Konsisten
  • Logika duplikat
  • Struktur duplikat
  • Pencemaran Kelas
  • Pelanggaran Penyembunyian Informasi
  • Kode diulang di antara mutator , accessors, serializers , parser
  • Efek riak
  • Integritas data
  1. Transfer data anemia pada array.
  2. Gunakan objek bisnis nyata.
  3. Jika kita ingin mentransfer objek parsial: gunakan proxy atau objek null untuk memecahkan grafik referensi.

Salah

Benar

Deteksi

Kita dapat menggunakan detektor objek anemia yang sama.

Kami dapat memeriksa kelas anemia tanpa perilaku objek bisnis (menghapus serial, konstruktor, mutator, dll).

Tag

  • anemia

DTO adalah alat dan praktik yang mapan dalam beberapa bahasa. Kita harus menggunakannya dengan hati-hati dan bertanggung jawab.

Jika kita perlu membongkar objek kita untuk mengirimnya menjauh dari alam kita, kita harus sangat berhati-hati. Karena objek yang dipotong-potong tidak memiliki pertimbangan integritas.

Penulisnya memperingatkan kita tentang penyalahgunaan yang sebenarnya.

Hubungan

Code Smell 01 — Anemic Models Code Smell 13 — Empty Constructors Code Smell 20 — Prematur Optimization Code Smell 28 — Setter

Info lebih lanjut

Bau terbaik adalah sesuatu yang mudah dikenali dan seringkali membawa Anda ke masalah yang sangat menarik. Kelas data (kelas dengan semua data dan tanpa perilaku) adalah contoh bagus untuk ini. Anda melihat mereka dan bertanya pada diri sendiri perilaku apa yang seharusnya ada di kelas ini.

Martin Fowler

Rekayasa Perangkat Lunak Kutipan Hebat

Artikel ini adalah bagian dari Seri CodeSmell.

Cara Menemukan bagian Stinky dari Kode Anda

Suggested posts

Apa yang membuat podcast berpengaruh?

Apa yang membuat podcast berpengaruh?

Minggu lalu saya melihat siaran pers, dikirim melalui PressGazette (situs web berita media Inggris). Artikel tersebut mengumumkan bahwa Acast, perusahaan hosting dan periklanan podcast Scandi, akan memimpin konsorsium penerbit "mungkin yang paling berpengaruh" dalam podcasting.

Tantangan Membaca Goodreads Beracun

Tantangan Membaca Goodreads Beracun

Gatal di tangan saya menyebar saat saya menawar dengan penjual buku lokal untuk buku lain. Buku ini seperti buku lain yang saya beli baru-baru ini akan menemukan singgasananya di tumpukan 'To Be Read' (TBR) saya; namun, saya membelinya.

Related posts

Kebohongan Koboi

Bagaimana perusahaan besar menjual kebohongan besar kepada orang Amerika

Kebohongan Koboi

Ini adalah pagi keemasan yang cemerlang di perbukitan barat, saat sinar pertama matahari menyinari rerumputan beku di dataran. Kawanan sapi Angus yang tenang, hitam legam dan besar, membentuk siluet melawan matahari terbit saat mereka menyusuri jalan setapak menuju lokasi yang mereka semua kenal dengan baik; bar sarapan.

Mencari Informasi Tentang Nama Domain

Kutipan dari Alat Perangkat Lunak Kecil dan Tajam oleh Brian P. Hogan

Mencari Informasi Tentang Nama Domain

Saat Anda membuat permintaan ke facebook.com, komputer Anda mencari nama domain untuk menerjemahkan nama domain tersebut menjadi alamat IP sehingga komputer Anda dapat membuat koneksi tersebut.

Mengapa beberapa pekerja lepas memalsukan hidup mereka

Mengapa beberapa pekerja lepas memalsukan hidup mereka

Saya baru-baru ini berada di Linkedin, jejaring sosial profesional terbesar di dunia, dan menemukan postingan dari desainer lepas yang saya ikuti yang menarik perhatian saya. Mereka semua memposting foto dari pesawat terbang, di pantai dengan laptop mereka, dari kolam renang, dan kantor dengan pemandangan menakjubkan.

Cara Menyelamatkan Planet dan Menghasilkan Uang

Cara Menyelamatkan Planet dan Menghasilkan Uang

Berapa kali Anda membuang botol plastik, toples kaca, kaleng aluminium, atau paket energi hijau tanpa berpikir dua kali? Berapa kali Anda berharap bisa mendapatkan sesuatu sebagai imbalan untuk mendaur ulangnya? Jika Anda seperti kebanyakan orang, jawabannya mungkin berkali-kali. Daur ulang sering dianggap merepotkan, tugas, atau tugas yang tidak membawa manfaat langsung atau nyata.