2010-04-03 7 views
4

Je travaille avec un certain nombre d'entités de données qui peuvent être créées, lues, mises à jour et effacées, et je me retrouve à écrire plus ou moins le même code pour elles. Par exemple, j'ai parfois besoin de générer des données au format JSON, et parfois sous forme de tableau. Je me trouve en train d'écrire 2 types de vue différents pour exporter les données. En outre, la création de ces entités dans la base de données diffère généralement uniquement des instructions SQL et des paramètres d'entrée.Quels sont les bons modèles de conception pour CRUD?

Je pense à créer un modèle de stratégie pour représenter différents «contextes». Par exemple, la méthode read() d'un contexte AJAX consiste à renvoyer les données au format JSON. Cependant, je me demande si d'autres ont traité ce problème à l'avance et aimeraient savoir quels modèles de conception sont habituellement utilisés pour des opérations de CRUD. Edit: Une note est que parfois les entités composées sont utilisées pour constituer un entier; par exemple, un emplacement peut avoir plusieurs descriptions, une pour chaque langue prise en charge.

Répondre

2

Il n'y a pas un seul motif pour CRUD, il y a beaucoup de motifs en chevauchement/en compétition. L'une des meilleures sources pour ces modèles CRUD est:

Martin Fowler's Patterns of Enterprise Application Architecture

En général, la meilleure façon de résoudre ce problème particulier est avec un ORM (en supposant une banque de données relationnelle, ce qui semble être une hypothèse sûre dans ce cas):

http://en.wikipedia.org/wiki/Object-relational_mapping

en ce qui d'exposer vos objets à travers des vues, il y a des cadres là-bas pour aider à cela aussi, mais ces cadres sont spécifiques à votre environnement de codage, que vous n'avez pas spécifié.

+0

Le site Web de Fowler semble être en panne pour le moment. –

+0

Quel motif ou ORM? –

0

Vérifiez ODATA (http://www.odata.org) - qui a des configurations assez décentes pour CRUD sur HTTP - y compris un mécanisme pour pousser les mises à jour par lots sur le serveur.

1

Pas vraiment une réponse de modèle - désolé. Mais je suggère d'utiliser un système ORM (modèle de dépôt) pour l'interface de base de données. JPA, Hibernate, iBatis, etc. Vous n'aurez plus besoin d'écrire de code SQL.

Si vous voulez réduire la quantité de code que vous avez à écrire, essayez un framework tel que Grails. (Écrivez un site Web complet du CRUD avec environ 30 lignes de code.) Vous n'avez plus besoin d'écrire le code standard.

Questions connexes