ООП: Будет ли слишком далеко, чтобы создать объект номера телефона или объект адреса? - PullRequest
4 голосов
/ 17 февраля 2011

Многие вещи могут иметь номера телефонов и адреса. , , люди, места и т. д. Вы хотите, чтобы телефонные номера и адреса имели одинаковую функциональность, формат и проверку, будь то номер телефона или адрес для человека или места и т. д.

Будет ли далеко создавать класс телефонных номеров и класс адресов и использовать их в тех объектах, которые имеют телефонные номера и адреса?

Мой вопрос касается и других свойств, которые можно повторно использовать в различных объектах.

Ответы [ 3 ]

4 голосов
/ 17 февраля 2011

Я думаю, это было бы вполне приемлемо.Хорошо разработанный класс позволит вам использовать его во многих различных проектах.Если у вас есть много проектов, которые могут использовать такую ​​функциональность, использование объекта - это идеальный способ обеспечить повторное использование вашего кода и его переносимость.Расширяемость и возможность для вас расширять функциональные возможности вашего класса для обработки любого телефонного номера / адреса, не имеют аналогов по набору функций или после перезапуска кода, который вы переписываете снова и снова.

В конце концов, этоВаш звонок, лично я думаю, что это подпадает под хорошую практику.

4 голосов
/ 17 февраля 2011

Да, вы можете зайти слишком далеко, и это граница. Я склонен рисовать линию в точке, где становится неудобно рассматривать вещи как нечто большее, чем строку или другой уже определенный класс / тип.

Если вам нужно каким-то образом манипулировать телефонными номерами (например, разделяя их на код города и другие биты) или адресами (номер, улица, город, страна и т. Д.), Тогда да, рассмотрите создание их объектов.

Я редко делаю что-либо с телефонными номерами или адресами, кроме как храню и отображаю их, в этом случае они подходят как строки, не имея собственного выделенного класса. Для адресов я даже не навязываю разделение по частям (за исключением, возможно, почтового индекса), предпочитая запись в свободном формате, чтобы не раздражать адреса с форматом, о котором я не знаю.

Пройдя маршрут reductio ad absurdum, вы также можете объективировать персонажей, которые составляют ваш номер телефона, но это будет глупо.

1 голос
/ 17 февраля 2011

Вам нужны Entity Class и Address Class.

Entity может быть персоной, местом, организацией, кафе, своего рода, тогда как Address может захватывать номер телефона, email, Lat / Long своего рода материал.

Сохранение сущности и адреса поможет вам в различных объектах. и наличие отношения между многими и многими между сущностью и адресом поможет, если в долгосрочной перспективе будет оказана слабая помощь по связям.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...