Я бы инкапсулировал подобные поля в собственный объект со своей собственной логикой построения / проверки.
Скажем, например, если у вас есть
- BusinessPhone
- BusinessAddress
- HomePhone
- HomeAddress
Я бы создал класс, который хранит телефон и адрес вместе с тегом, указывающим, является ли он «домашним» или «служебным» телефоном / адресом. А затем уменьшите 4 поля до простого массива.
ContactInfo cinfos = new ContactInfo[] {
new ContactInfo("home", "+123456789", "123 ABC Avenue"),
new ContactInfo("biz", "+987654321", "789 ZYX Avenue")
};
Customer c = new Customer("john", "doe", cinfos);
Это должно сделать его менее похожим на спагетти.
Конечно, если у вас есть много полей, должен быть какой-то шаблон, который вы можете извлечь, который мог бы создать хорошую единицу функции самостоятельно. И сделать для более читабельного кода тоже.
И следующие также возможные решения:
- Разложите логику проверки вместо хранения в одном классе. Проверять, когда пользователь вводит их, а затем снова проверять на уровне базы данных и т. Д. *
- Создайте
CustomerFactory
класс, который помог бы мне построить Customer
s
- @ Марсио тоже интересно ...