Многоуровневые объекты и бд

241
15 августа 2018, 02:50

ТЗ: написать удобную и правильную с точки зрения ООП структуру для работы с большими многоуровневыми объектами и бд.

В качестве объектов - недвижимость. Она делится на 3 типа жилая, новостройки и коммерческая. У всех трёх есть общие параметры (локация, площадь, цена...) и так же различия. Тут всё понятно: создаём абстрактный класс Realty и наследуем от него 2 вышеперечисленных типа Commercial, Residential и задаём каждому отдельные параметры. NewResidential наследуем от Residential, т.к. у него всё тоже самое + 2 параметра.

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

  • либо писать кучу геттеров в 3х классах и подклассах чтобы формировать одномерный массив и кучу сеттеров чтобы обратно их запихивать (забыл сказать, у меня аллергия на публичные свойства, поэтому всё так усложняю).
  • либо сделать все 3 класса одноуровневыми и в случае нужды создавать объекты локации, цены и площади... и т.д. Но лично я вижу жуткую нечитаемость здоровенных одномерных вардампов.

Хочу узнать как решают такие задачи профессионалы.

READ ALSO
Vue.js в Laravel 5

Vue.js в Laravel 5

Всем известно, что в laravel встроен vuejs

230
Разница дат PHP

Разница дат PHP

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

209
Когда использовать CQRS на PHP?

Когда использовать CQRS на PHP?

Всем привет! Кто писал или что знает про backend-приложения с использованием паттерна CQRS? Когда стоит использовать его, а когда остаться на очередной...

264
Страница при первом посещении сайта

Страница при первом посещении сайта

Хочу сделать так, чтобы первые посетители сайта (stockupaz) перенаправлялись на лендинг, который рассказывает о сервисе (stockup

204