Şartlı çözümleme şu anda anlamadığım en son şey. Bağımlılık Enjeksiyon Birimi - Koşullu Çözümleme
public interface IAuthenticate{
bool Login(string user, string pass);
}
Şimdi iki kimlik doğrulama türü vardır:
biz bir arayüz IAuthenticate
var düşünelim. birlik config
Heyecan auth
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
}
}
kaydedilmesi türleri:
unityContainer.RegisterType<IAuthenticate, TwitterAuth>();
unityContainer.RegisterType<IAuthenticate, FacebookAuth>();
bizim denetleyicisi DI'nin aracılığıyla nesneleri enjekte:
Farklı kimlik doğrulama türleri için hangi nesnenin çözümlenmesi gerektiğini birlik tam olarak nasıl bilecek? Bu durumda koşullu çözümleme nasıl yapabilirim?
Arkadaşımla konuştum ve bu durumun yanlış bir tasarım olduğu ortaya çıktığında açıkladı, ama bu sadece fabrika modelidir.
Arkadaşınız haklı olabilir. [Liskov İkame Prensibi] 'ni ihlal etmediğinizde yakından bakın (https://en.wikipedia.org/wiki/Liskov_substitution_principle).Eğer 'IAuthenticate'' uygulamaları birbiri ile uyumlu değilse (yani "AuthenticateController" gibi bir tüketici yanlış uygulamayı gerçekleştirirse doğru şekilde çalışmayacaktır), LSP'yi ihlal ediyorsunuz demektir. Bu durumda çözüm genellikle her bir uygulamaya kendi soyutlamasını verir. – Steven