Các nguyên tắc chung hoặc quy tắc chung khi nào nên sử dụng một đối tượng tên miền cụ thể so với Chuỗi hoặc số đơn giản?
Ví dụ:
- Lớp tuổi vs Số nguyên?
- Lớp FirstName vs String?
- UniqueID vs String
- Lớp PhoneNumber vs String vs Long?
- Lớp DomainName vs String?
Tôi nghĩ rằng hầu hết các học viên OOP chắc chắn sẽ nói các lớp cụ thể cho PhoneNumber và DomainName. Càng nhiều quy tắc xung quanh những gì làm cho chúng hợp lệ và cách so sánh chúng làm cho các lớp đơn giản trở nên dễ dàng và an toàn hơn để giải quyết. Nhưng đối với ba người đầu tiên có nhiều tranh luận.
Tôi chưa bao giờ bắt gặp một lớp "Thời đại" nhưng người ta có thể lập luận rằng nó có nghĩa là nó không âm (được thôi tôi biết bạn có thể tranh luận về độ tuổi tiêu cực nhưng đó là một ví dụ tốt rằng nó gần như tương đương với một số nguyên nguyên thủy).
Chuỗi là phổ biến để đại diện cho "Tên" nhưng nó không hoàn hảo vì Chuỗi trống là Chuỗi hợp lệ nhưng không phải là tên hợp lệ. So sánh thường sẽ được thực hiện bỏ qua trường hợp. Chắc chắn có các phương pháp để kiểm tra trống, thực hiện so sánh không phân biệt chữ hoa chữ thường, v.v ... nhưng nó đòi hỏi người tiêu dùng phải làm điều này.
Câu trả lời có phụ thuộc vào môi trường không? Tôi chủ yếu quan tâm đến doanh nghiệp / phần mềm giá trị cao sẽ tồn tại và được duy trì trong hơn một thập kỷ.
Có lẽ tôi đang xem xét lại điều này nhưng tôi thực sự muốn biết liệu có ai có quy tắc khi nào nên chọn lớp so với nguyên thủy không.
people may be one or two years older in Asian reckoning than in the western age system
Age
lớp thay vì một số nguyên khi bạn cần hành vi bổ sung mà một lớp như vậy sẽ cung cấp.