2011-01-25 4 views
-2

J'ai utilisé cette méthodologie beaucoup plus tard (C#) pour être en mesure de découpler la logique de mes objets de domaine qui ne devraient pas résider à l'intérieur de l'objet de domaine lui-même. Ce que je trouve très agréable et propre.IOC résoudre homologues dans d'autres langages

Comment pourrais-je accomplir la même chose en disons Java ou C++, etc? Java n'a pas d'information de type générique d'exécution donc cette méthode est évidemment inexistante là-bas, peut-on faire de même mais avec une autre méthodologie?

Exemple de résolution d'éléments de menu pour un objet de domaine. (Peut-être d'autres choses aswell par exemple résoudre des règles de validation, etc..):

class DomainObject 
{ 

} 

interface IMenuItem<T> 
{ 
    string GetTitle(T entity); 
    Action<T> ItemAction; 
} 

class DomainObjectMenuItem : IMenuItem<DomainObject> 
{ 
    // Menu item implementation for domain object 
} 


public void GenerateItems(object domainObject) 
{ 
    Type type = typeof(IMenuItem<>).MakeGeneric(domainObject.GetType()); 
    IMenuItems[] items = container.ResolveAll(type); 

    // Do something with items 
} 
+0

Bas vote sans commentaire? Merci ou quelle est la réponse appropriée? – Marcus

Répondre

0

Java a beaucoup de cadres d'injection de dépendance (conduit à CIO) tels que Spring et Guice. Vous pouvez bien sûr le coder à la main, mais presque personne ne le fait. Au lieu de cela, on utilise un framework, avec sa méthode de configuration prescrite telle que les annotations ou XML.

+0

Oui, je le sais, et ce n'est pas ce que je demande. Je ne parle pas du framework Ioc utilisé, je parle du design (indépendant du framework ioc utilisé). – Marcus