依赖注入统一 - 条件解析
有条件的解决是目前我还不了解的最后一件事。
让我们说我们有一个界面IAuthenticate
:
public interface IAuthenticate{ bool Login(string user, string pass);}
现在我有两种类型的身份验证。
Twitter认证
public class TwitterAuth : IAuthenticate{ bool Login(string user, string pass){ //connect to twitter api}}
Facebook Auth
public class FacebookAuth: IAuthenticate{ bool Login(string user, string pass){ //connect to fb api}}
在unity配置中注册类型:
unityContainer.RegisterType<IAuthenticate, TwitterAuth>();unityContainer.RegisterType<IAuthenticate, FacebookAuth>();
在我们的控制器中通过DI注入对象:
private readonly IAuthenticate _authenticate;public AuthenticateController(IAuthenticate authenticate){ _authenticate = authenticate;}// login with twitterpublic virtual ActionResult Twitter(string user, string pass){ bool success = _authenticate.Login(user, pass);}// login with fbpublic virtual ActionResult Facebook(string user, string pass){ bool success = _authenticate.Login(user, pass);}// login with googlepublic virtual ActionResult Google(string user, string pass){ bool success = _authenticate.Login(user, pass);}
团结如何知道它必须为不同类型的身份验证解决哪个对象?在这种情况下如何进行条件解决?
我和我的朋友谈过,他解释说如果这种情况出现是错误的设计,但这只是工厂模式使用的。
杨__羊羊
相关分类