Вопрос

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

Учитывая, что у нас есть Zend Framework Quick START TURAND С структурой модели, содержащей:

  • Ворота
  • DataMapper
  • Объект домена (класс модели)

Если объект домена (как представлен в учебном пособии Zend Quick Start) состоит из только Getters и Setters, это анти-паттерн? В некотором смысле, мы неоправданно делят объект домена с помощью сценария транзакций?

Пожалуйста, порекомендуйте.

Это было полезно?

Решение

Объекты домена отделены от бизнес -логики программного обеспечения. Это важная идея Процедурное программирование.

Однако эта модель считается кандидатом на анти-паттерн некоторыми разработчиками, что означает, что это может быть неэффективной практикой.

На самом деле вы могли бы рассмотреть недостатки

  • Ваша модель менее выразительна, Getters и Setters не очень хороши для описания модели
  • Код труднее повторно использовать, вы получаете дублированный код среди своих транзакционных сценариев
  • Вы должны использовать обертки, которые скрывают фактическую структуру данных (так что, возможно, не ООП)
  • Всегда есть глобальный доступ к субъектам

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

Я тоже работал над приложением CRUD с Zend Framework. Четкое разделение между логикой и данными действительно великолепно, но когда вы прогрессируете, вы понимаете, что количество слоев и карточек становится больше и больше. Попробуйте повторно использовать свой код как можно больше, и избежать дублирования.

Другие советы

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

Для простого приложения CRUD модель анемичной домены, вероятно, является наилучшей практикой, особенно если у вас есть структура, которая облегчает вашу работу.

Смотрите статью Мартина Фаулера о Анемическая доменная модель а также Статья Грега Янга.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top