Question

Je suis en train de construire ma première application CRUD, et je ne comprends pas si je devrais utiliser un objet contenant des accesseurs séparés.

Étant donné que nous avons le tutoriel Zend Framework Quick Start avec une structure de modèle contenant:

  • Passerelle
  • DataMapper
  • Objet de domaine (classe modèle)

Si l'objet Domaine (tel que présenté le tutoriel Zend Quick Start) se compose de seulement accesseurs, est-ce un anti-modèle? Dans un sens, nous divisons unecessarily l'objet de domaine avec un script de transaction?

S'il vous plaît conseiller.

Était-ce utile?

La solution

Les objets de domaine sont de la logique seperated d'affaires du logiciel. Ceci est une idée importante de programmation procédurale .

Cependant ce modèle est considéré comme un candidat pour un anti-modèle par certains développeurs qui signifie qu'il pourrait être une pratique inefficace.

En fait, on pourrait envisager des inconvénients

  • votre modèle est moins expressif, accesseurs ne sont pas vraiment bon pour décrire le modèle
  • code est plus difficile à réutiliser, vous obtenez le code dublicated parmi vos scripts transactionnels
  • vous devez utiliser des enveloppes qui cachent la structure de données réelles (donc peut-être pas vraiment POO)
  • il y a toujours un accès global à des entités

Je pense que le point le plus intéressant à considérer est que les objets du modèle de domaine ne peuvent pas assurer leur exactitude à tout moment. Parce que leur mutation a lieu dans des couches séparées.

Je travaille sur une application CRUD avec zend framework aussi. La séparation claire entre la logique et les données sont vraiment super, mais quand vous progressez vous vous rendez compte que la quantité de couches et cartographes devient de plus en plus. Essayez de réutiliser votre code autant que vous pouvez et éviter photocopier.

Autres conseils

Le modèle de domaine anémiques est un Anti-Patern seulement si vous essayez de construire un véritable modèle de domaine (aka modèle de domaine du domaine Driven Design) et finissent avec des entités avec seul Etat et sans comportement.

Pour une simple application CRUD un modèle de domaine anémique est probablement une meilleure pratique, surtout quand vous avez cadre qui rend votre travail très facile.

Voir l'article de Martin Fowler sur le Anemic Modèle de domaine aussi Greg Young article

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top