Форум → Программирование → PHP для идиотов → PHP и ООП → Создание классов-структур единого типа с данными и без...
Создание классов-структур единого типа с данными и без...
-
Итак есть класс-структура. К примеру - период/частота употребления/использования какого-нить продукта/услуги или что-то в этом роде.
Можно выбрать Каждый день, а можно и по дням недели(к этому типу нужно привязать дни недели по выбору), или интервал по днях(критерий - собсно сам интервал).
То есть будем относить каждый заданный критерий(объект) к одному и тому же типу(интерфейсу).
В плане программирования, если частота по дням недели или интервал по днях - объекты, то с созданием их не заморачиваемся: просто в качестве полей выставляем им массив выбранных этих дней недели или интервал употребления соответственно.
Ну а вот с частотой Каждый день то что делать? Он ведь остается как пустой объект. И, по сути, лишь для того чтобы потом при проверке на тип можно было бы установить его сущность. И так получается что будем создавать просто пустой объект.
Нормально ли это с точки зрения проектирования? Или существуют другие более приемлемые способы? Ведь и целочисленными константами в этом случае частоту мы не определим т.к. две последних имеют дополнительные данные… -
-
22 декабря 2012 г. 10:39, спустя 12 часов 30 минут 54 секунды
Ну уверен, что понимаю суть психологической проблемы. Если тебя пугает пустой объект, ты можешь использовать вместо него вариант "по дням недели" в котором будут заполнены все дни недели.Спустя 56 сек.Мой телефон поступает с будильником именно так )))ιιlllιlllι унц-унц -
-
22 декабря 2012 г. 14:50, спустя 3 часа 1 минуту 11 секунд
artoodetoo, Весьма хорошее решение. Да, действительно, и если в случае будильник должен прозвонить лишь единожды в заданное время, то выставляем в календаре лишь заданный день.
Ну а вот если, допустим, немного другая предметная область. Скажем виды ходов в покере. На случай если кому не известно, то есть чек, фолд, бет, колл, рейз, алл-ин. Вдаваться в описание не стану, не в том суть. Суть в том, что первых 2 хода ничего собой не представляют кроме как заданный тип. Следующие же четыре - должны так же инкапсулировать в себе сумму денег, на которую подымается ставка. Для них - все прозрачно: определяем классы с числовым полем, которое и будет ранить эту сумму. А для тех ходов, в которых суммы нет - приходится, выходит, их определять пустыми.
Что я бы сделал? Задал бы каждому типу/ходу поле "является ли он простым". Ну а потом проверяю - если да, то проверяю что за ход и выковыриваю из него ставку, а если нет, просто проверяю принадлежность типу. Но опять же таки, ходы без ставок являют собою инстанцы пустых классов. -
Пожалуйста, авторизуйтесь, чтобы написать комментарий!