Alors voici:

Nous avons en gros:
- la couche IHM qui fait un premier controle sur le domaine de définition des inputs puis transmet les commandes CRUD ( Create, Update et Delete m'interessent particulièrement). Elle a aussi un grand role dans la cohérence des séquences d'appels à la couche métier (donc séquence de commande: par exemple on n'écrit pas un fichier avant de l'avoir créé). Ce controle masque souvent des manques de robustesse de la couche métier.

- la couche métier modifie le model de données et fait un certain nombres de controles de cohérence du model en rapport avec les contraintes métiers édictées par les spécifications. D'autres part elle lève des exceptions métier du genre (non on n'écrit pas dans un fichier avant de l'avoir créé)

- ici on a une couche DAO qui fait le passage Objet <--> (Tables,XML,TXT...).
Sa grande épreuve est de construire des graphes d'objets, en fonction des sollicitudes.

- ici une sous couche Controle objet de ma philo

- la couche persistance qui se démerde.

Si on remarque on a souvent un effet pyramidale en nombre de ligne de code à gérer et en complexité surtout (intellectuelle); avec du plus lourd vers le plus léger: IHM > Metier > DAO. (c'est pas toujours vrai)

Je me dit que ce qu'il faut défendre à tout prix c'est la cohérence de l'information persistée (cas d'un système d'information). Si une erreur est commise, pourra t-on réparer ? Va t-on perdre toute l'information , par ce que le logiciel plantera, au prochain démarrage...

Pour ce faire mon idée est que ma couche Controle vérifie l'information avant persistance, et même à la remontée pourquoi pas. Vérfier par rapport aux contraintes métiers: arité, dépendancces etc...
Alors bien sur la couche métier se doit de respecter les contraintes, mais cela est fait par un humain, et parfois même par un pingouin. Cette couche attaque le graphe d'objet par tout les sens et ne fait pas une vérification exhaustive de toute le graphe à chaque modification (ce serait long). Elle vérifie un simplement un sous graphe.

Une couche de controle des contraintes métier avant persistance serait peut être un vrai plus en terme de robustesse; à mon avis le rapport qualité/implémentation doit être élevé. Elle aurait pour but de parcourir tout le graphe et de vérifier les règles.

Qu'en pensez vous.