La première réponse est bonne et donne quelques réponses structurelles, mais une autre approche consiste à réfléchir à ce que vous faites. Les modules ont pour but de fournir des méthodes que vous pouvez utiliser dans plusieurs classes - pensez à eux comme à des "bibliothèques" (comme vous le verriez dans une application Rails). Les classes concernent les objets ; les modules concernent les fonctions.
Par exemple, les systèmes d'authentification et d'autorisation sont de bons exemples de modules. Les systèmes d'authentification fonctionnent sur plusieurs classes d'applications (les utilisateurs sont authentifiés, les sessions gèrent l'authentification, de nombreuses autres classes agissent différemment en fonction de l'état de l'authentification), les systèmes d'authentification agissent donc comme des API partagées.
Vous pouvez également utiliser un module lorsque vous avez des méthodes partagées entre plusieurs applications (là encore, le modèle de la bibliothèque est bon).
31 votes
Ce diagramme peut vous aider .