Je vais laisser votre première question sans réponse, car elle ne peut pas être raisonnablement répondu dans sa forme actuelle.
Ma compréhension de votre deuxième question:
Tout d'abord, laissez-moi essayer de comprendre la mise en page de base de l'architecture de votre serveur:
+--------+ 1 1..n +--------+ 1 1..n +---------+
| Server |<>------------| Module |<>-----------| Project |
+--------+ +--------+ +---------+
« Il y a un serveur, qui a ou est constitué de 1 ou plusieurs modules, dont chacun a ou est composé de plusieurs projets. " J'ai pris cela directement à partir de votre question. La première chose que je ne comprends pas ici, est-ce que nous parlons de composants d'exécution, ou de la mise en page de votre solution de code source?
Plus concrètement, vous semblez avoir cette hiérarchie des modules, des projets et des classes:
Server
|
+---- Accounting (module)
| ¦
| ? (projects)
|
+---- Offer (module)
¦ |
? +---- Action (project)
|
+---- Message (project)
|
+---- Entity (project)
|
+---- Query (project)
|
+---- ProductQuery (class)
|
+---- CustomerQuery (class)
¦
?
Et si je comprends bien, vous voulez maintenant rassembler toutes les méthodes d'interrogation à distance « » de par exemple ProductQuery
et CustomerQuery
dans une classe OfferQuery
courante ... est-ce correct?
direction proposée vers une solution pour votre deuxième question:
Maintenant, étant donné que vous n'avez pas fourni beaucoup de détails sur les technologies et les cadres que vous utilisez, je vais aussi rester un peu vague:
Je pense que ce que vous essayez de faire n'est pas une bonne approche. Pourquoi? Parce que vous allez mettre des choses complètement indépendantes dans une seule classe, basée sur l'idée qu'elles sont toutes des méthodes de "requête". Mais ils interrogent des choses très différentes: par ex. Offers
, Products
, Customers
. Ce n'est pas une bonne conception orientée objet parce que, bien, ce n'est pas "orienté domaine". C'est orienté sur les requêtes.
Je pense que vous feriez bien de développer un modèle d'objet propre (domaine). Concevez des classes autour des entités logiques de votre système (par exemple, les offres, produits, comptes, clients, etc. déjà mentionnés).Gardez les classes correspondantes complètement exemptes de méthodes de requête.
Maintenant, où vont les requêtes? Vous pouvez rechercher des mappeurs de modèle relationnel objet (OR/M) pour cette tâche. Hibernate (ou avec .NET, NHibernate) ou Entity Framework pour .NET de Microsoft sont de bonnes options. Ils mapperont votre modèle de domaine sur une base de données relationnelle et effectueront la création, l'interrogation, la mise à jour et la suppression dans la base de données pour vous.
En ce qui concerne votre première question, vous êtes trop peu spécifique pour obtenir des réponses raisonnables. Nous aurions besoin de savoir quels frameworks vous utilisez pour votre composant serveur, et à quoi ressembleraient des requêtes typiques et concrètes. S'il vous plaît fournir plus de détails. – stakx