Est-ce une erreur d'appeler une classe FooFactory si ce n'est pas le cas toujours créer des objets Foo? Par exemple, si je l'interface suivante:Est-ce une erreur d'appeler une classe FooFactory si elle ne crée pas * toujours * des objets Foo?
public interface IFooFactory
{
Foo Create();
}
et mettent en place comme suit:
public class FooFactory : IFooFactory
{
public IFoo Create()
{
return ServiceLocator.Current.GetInstance<IFoo>();
}
}
alors cette classe pourrait créer un Foo en fonction de la façon dont mon conteneur IoC est configuré. Si le nom 'XxxFacotry' doit être réservé aux vraies usines, que dois-je appeler mon interface et ma classe? La réponse évidente est IFooProvider, mais je veux vraiment éviter 'XxxProvider' car il est trop utilisé et donc trop vague. D'un autre côté, IFooServiceLocator est beaucoup trop spécifique.
D'autres suggestions d'appellation ont été grandement appréciées.
Eh bien qu'est-ce que vous attendez d'un CarFactory? Droite. Ils produisent la bière que j'ai en ce moment. –
Ouais je ne pense pas que ce devrait être une "usine" si elle ne crée pas toujours une nouvelle instance puisque c'est ce que son nom implique. – TheCloudlessSky
Personnellement, je préférerais Provider à Factory si les instances peuvent être réutilisées, mais je pense que c'est subjectif. L'important est d'utiliser les termes de manière cohérente dans votre base de code. –