Supposons que nous ayons un module logiciel A qui implémente une fonction F. Un autre module B implémente la même fonction que F '.
Il existe plusieurs façons de se débarrasser du code en double:
- Soit A utiliser F 'de B.
- Soit B utiliser F de A.
- Mettez F dans son propre module C et laissez A et B l'utiliser.
Toutes ces options génèrent des dépendances supplémentaires entre les modules. Ils appliquent le principe DRY au prix d'augmenter le couplage.
Pour autant que je puisse voir, le couplage est toujours augmenté ou, à la location, déplacé à un niveau supérieur lors de l'application de SEC. Il semble y avoir un conflit entre deux des principes les plus élémentaires de la conception de logiciels.
(En fait, je ne trouve pas surprenant qu'il y ait de tels conflits. C'est probablement ce qui rend la conception d'un logiciel si difficile. Je trouve surprenant que ces conflits ne soient normalement pas abordés dans les textes d'introduction.)
Edit (pour clarification): Je suppose que l'égalité de F et F 'n'est pas seulement une coïncidence. Si F devra être modifié, F 'devra probablement être modifié de la même manière.