我正在尝试将我的业务逻辑从我的服务类和控制器中移出,并将其放在我的业务类中。
public interface IFoo{
IBar CreateBar(creationParameters);
}
public class FirstFoo : IFoo{
IBar CreateBar(creationParameters){
return new FirstBar(creationParameter.Id);
}
}
public interface IBar{
void DoSomething();
}
public class FirstBar : IBar{
FirstBar(int id){...}
void DoSomething(){
//well... do something
}
}
public class SecondBar : IBar{
FirstBar(int id){...}
void DoSomething(){
//well... do something else
}
}
假设我需要创建一个 SecondFoo,它需要访问数据库才能知道它必须创建一个 FirstBar 或 SecondBar,我该怎么做?我在 SecondFoo 的构造函数中注入了我的数据源?服务定位器?我将 createBar 移出 IFoo 吗?
编辑:我不是在寻找工厂模式的定义,createBar 方法可能类似于“changeBar”或“doBusinessWithBar”。