Apa pedoman umum atau aturan praktis kapan harus menggunakan objek spesifik domain vs String atau angka biasa?
Contoh:
- Kelas usia vs Integer?
- FirstName class vs String?
- UniqueID vs String
- Kelas PhoneNumber vs String vs Long?
- Kelas DomainName vs String?
Saya pikir sebagian besar praktisi OOP pasti akan mengatakan kelas khusus untuk PhoneNumber dan DomainName. Semakin banyak aturan tentang apa yang membuatnya valid dan bagaimana membandingkannya, membuat kelas sederhana menjadi lebih mudah dan lebih aman untuk dihadapi. Tetapi untuk tiga yang pertama ada lebih banyak perdebatan.
Saya tidak pernah menemukan kelas "Usia" tetapi orang dapat berargumen bahwa itu masuk akal mengingat itu harus non-negatif (oke saya tahu Anda bisa berdebat untuk usia negatif tapi itu contoh yang baik bahwa itu hampir setara dengan bilangan bulat primitif).
String biasa mewakili "Nama Depan" tetapi tidak sempurna karena String kosong adalah String yang valid tetapi bukan nama yang valid. Perbandingan biasanya dilakukan mengabaikan kasus. Tentu ada metode untuk memeriksa apakah ada yang kosong, bandingkan case-insensitive, dll tetapi itu mengharuskan konsumen untuk melakukan ini.
Apakah jawabannya tergantung pada lingkungan? Saya terutama peduli dengan perangkat lunak perusahaan / bernilai tinggi yang akan hidup dan dipelihara selama lebih dari satu dekade.
Mungkin saya terlalu memikirkan ini tetapi saya benar-benar ingin tahu apakah ada yang punya aturan kapan harus memilih kelas vs primitif.
people may be one or two years older in Asian reckoning than in the western age system
Age
kelas alih-alih bilangan bulat ketika Anda membutuhkan perilaku tambahan yang akan diberikan oleh kelas tersebut.