ФорумПрограммированиеPHP для идиотовPHP и ООП → Создание классов-структур единого типа с данными и без...

Создание классов-структур единого типа с данными и без...

  • Rotten

    Сообщения: 2243 Репутация: N Группа: Адекваты

    Spritz 21 декабря 2012 г. 19:45

    Итак есть класс-структура. К примеру - период/частота употребления/использования какого-нить продукта/услуги или что-то в этом роде.
    Можно выбрать Каждый день, а можно и по дням недели(к этому типу нужно привязать дни недели по выбору), или интервал по днях(критерий - собсно сам интервал).

    То есть будем относить каждый заданный критерий(объект) к одному и тому же типу(интерфейсу).
    В плане программирования, если частота по дням недели или интервал по днях - объекты, то с созданием их не заморачиваемся: просто в качестве полей выставляем им массив выбранных этих дней недели или интервал употребления соответственно.

    Ну а вот с частотой Каждый день то что делать? Он ведь остается как пустой объект. И, по сути, лишь для того чтобы потом при проверке на тип можно было бы установить его сущность. И так получается что будем создавать просто пустой объект.
    Нормально ли это с точки зрения проектирования? Или существуют другие более приемлемые способы? Ведь и целочисленными константами в этом случае частоту мы не определим т.к. две последних имеют дополнительные данные…


  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 21 декабря 2012 г. 22:08, спустя 2 часа 22 минуты 45 секунд

    ебать ты хитер
    Сапожник без сапог
  • artoodetoo

    Сообщения: 5147 Репутация: N Группа: в ухо

    Spritz 22 декабря 2012 г. 10:39, спустя 12 часов 30 минут 54 секунды

    Ну уверен, что понимаю суть психологической проблемы. Если тебя пугает пустой объект, ты можешь использовать вместо него вариант "по дням недели" в котором будут заполнены все дни недели.
    Спустя 56 сек.
    Мой телефон поступает с будильником именно так )))
    ιιlllιlllι унц-унц
  • Абырвалг

    Сообщения: 6480 Репутация: N Группа: Джедаи

    Spritz 22 декабря 2012 г. 11:49, спустя 1 час 9 минут 56 секунд

    artoodetoo правильно говорит
  • Rotten

    Сообщения: 2243 Репутация: N Группа: Адекваты

    Spritz 22 декабря 2012 г. 14:50, спустя 3 часа 1 минуту 11 секунд

    artoodetoo, Весьма хорошее решение. Да, действительно, и если в случае будильник должен прозвонить лишь единожды в заданное время, то выставляем в календаре лишь заданный день.
    Ну а вот если, допустим, немного другая предметная область. Скажем виды ходов в покере. На случай если кому не известно, то есть чек, фолд, бет, колл, рейз, алл-ин. Вдаваться в описание не стану, не в том суть. Суть в том, что первых 2 хода ничего собой не представляют кроме как заданный тип. Следующие же четыре - должны так же инкапсулировать в себе сумму денег, на которую подымается ставка. Для них - все прозрачно: определяем классы с числовым полем, которое и будет ранить эту сумму. А для тех ходов, в которых суммы нет - приходится, выходит, их определять пустыми.

    Что я бы сделал? Задал бы каждому типу/ходу поле "является ли он простым". Ну а потом проверяю - если да, то проверяю что за ход и выковыриваю из него ставку, а если нет, просто проверяю принадлежность типу. Но опять же таки, ходы без ставок являют собою инстанцы пустых классов.
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 22 декабря 2012 г. 15:59, спустя 1 час 9 минут 17 секунд

    ебать олол
    Сапожник без сапог

Пожалуйста, авторизуйтесь, чтобы написать комментарий!