Помогите с выбором структуры кода для создания класса NewsHandler - PullRequest
2 голосов
/ 06 августа 2011

Задача - добавить Новости на наш сайт.

Я бы хотел создать класс php для этой задачи. Этот класс должен уметь делать такие вещи:

  1. Добавить новость
  2. Редактировать новости
  3. Удалить новость
  4. Показать точные новости
  5. Получить список новостей

Новости могут быть трех типов: локальные новости (новости организаций, зарегистрированных на сайте), глобальные новости (новости, которые добавляют администрацию сайта) и акции (горячие предложения от организаций)

Помогите выбрать правильную структуру классов для такой задачи. Я думал, что это может быть статический класс, например NewsHandler , который имеет статические методы:

  • добавьте ($ type_news, $ title, $ announce, $ content, $ picture)

    (метод вернет id новостей)

  • edit ($ id, $ new_title, $ new_announcement, $ new_content, $ new_picture)
  • удалить ($ id)
  • дисплей ($ id)
  • getAll ($ type_news) (метод вернет список новостей id )

Это очень тривиальный подход. Это неправильно? Может быть, я должен сделать большую структуру класса - с наследованием Например:

  • статический класс NewsHandler
  • class News (который создает экземпляры News)
  • классы LocalNews , GlobalNews , Акции (начиная с Новости )

Если так, я не знаю, какие методы должен иметь каждый из них

1 Ответ

1 голос
/ 31 октября 2011

Я бы сказал, что, если говорить очень просто, это будет нормальная установка.Однако, как указано в комментариях, вам, вероятно, нужно больше, чем эти классы.ООП - это, по большей части, нисходящее мышление, когда вам сначала нужно следить за тем, что вы собираетесь делать.Например, новости, вероятно, должны храниться в базе данных.Итак: класс базы данных.И вы можете использовать какой-то вид проверки, например.класс проверки.Тогда есть рендеринг вещи.Добавьте пару классов для них, для шаблонов, форматирования и т. Д.
Как вы можете сказать, ваши классы новостей будут использовать все эти другие классы.Так что, несмотря на то, что ваша установка выглядит нормально с точки зрения новостей, об этом будет гораздо больше.И поэтому нет четкого и простого ответа на ваш вопрос.

...