Design pattern Factory et génériques
Bonjour,
J'ai conscience que ce que je souhaite faire et un brin tordu, mais je n'ai pas trouvé de solution plus robuste.
Le but est d'avoir une classe de base qui implémente le pattern Factory dont d'autres classes pourront hériter tout en ayant un aspect différent (page à onglet ou tree view).
Voilà un exemple :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
| using Gtk;
using System.Collections.Generic;
class Factory<G, H> where G : new()
{
private static Factory<G, H> instance;
protected Factory()
{
}
public static Factory<G, H> get_instance()
{
if (instance == null)
{
instance = new Factory<G, H>();
}
return instance;
}
}
class TreeView
{
}
class Project
{
}
class ProjectFactory : Factory<Gtk.TreeView, Project>
{
}
class Test
{
static void Main(string[] args)
{
ProjectFactory factory = ProjectFactory.get_instance();
}
} |
Ce qui me permettrai d'avoir un gestionnaire de fichier :
Code:
1 2 3
| class FileFactory : Factory<Gtk.Notebook, File>
{
} |
Sachant que les gestionnaires proposent des méthodes open, save, ... qui ne sont que appeler les méthodes des objets usinés (H.open, H.save, ...).
Donc je souhaiterai savoir si ceci est faisable en C# (mon code ne compile pas) ou si vous avez une idée moins tordu ?