Quelle est la manière correcte de fournir des valeurs à une méthode d'usine abstraite?Conception de classe selon IoC et modèle d'usine abstraite
Par exemple.
interface IFactory
{
ISomething Create(int runTimeValue);
}
class Factory : IFactory
{
public ISomething Create(int runTimeValue)
{
return new Something(repository, runTimeValue);
}
}
Dans l'exemple, le dépôt est injecté par le constructeur lorsque l'usine est créé, mais je pouvais à la place déplacer le référentiel à l'interface IFactory
interface IFactory
{
ISomething Create(IRepository repository, int runTimeValue);
}
class Factory : IFactory
{
public ISomething Create(IRepository repository, int runTimeValue)
{
return new Something(repository, runTimeValue);
}
}
Ce qui est considéré comme « bonne » façon de le faire? Comment doit-on raisonner lors de la conception d'une usine abstraite?
Merci, cela aide :) – Marcus
Comment testeriez-vous cette unité? OtherRepositoryImpl est une implémentation concrète .... – danidacar