Які загальні вказівки чи правила, коли використовувати об’єкт домен-speciifc порівняно із звичайним рядком чи номером?
Приклади:
- Віковий клас проти цілого?
- Клас FirstName vs String?
- UniqueID - String
- Клас PhoneNumber vs String vs Long?
- Клас DomainName проти String?
Я думаю, що більшість практикуючих OOP напевно скажуть конкретні класи для PhoneNumber та DomainName. Більше правил щодо того, що робить їх дійсними, і як порівнювати їх, прості заняття простіше і безпечніше мати справу. Але для перших трьох є більше дебатів.
Я ніколи не стикався з класом "Вік", але можна стверджувати, що це має сенс, враховуючи, що він повинен бути негативним (добре, я знаю, ви можете сперечатися за вікові віки, але це хороший приклад, що це майже рівнозначно примітивному цілому числу).
Рядок є загальним для відображення "Імені", але він не є ідеальним, оскільки порожня рядок - це дійсна рядок, але не є дійсною назвою. Порівняння зазвичай робиться ігноруючи випадок. Впевнені, що існують методи перевірити наявність порожніх, порівняти нечутливі до регістру тощо, але це вимагає від споживача цього.
Чи залежить відповідь від оточення? Мене насамперед стосується програмне забезпечення для підприємств / високоцінного програмного забезпечення, яке буде жити та підтримуватися, можливо, більше десяти років.
Можливо, я переосмислюю це, але мені б дуже хотілося знати, чи є у когось правила щодо вибору класу проти примітиву.
people may be one or two years older in Asian reckoning than in the western age system
Age
клас, а не ціле число, коли вам потрібна додаткова поведінка, яку надав би такий клас.