Czy to możliwe, aby przez interfejs? projektując teraz system, zacznę od interfejsów i stopniowo piszę testy jednostkowe wraz z interfejsami, aż otrzymam wzór, który działa dobrze. Przejdę do pisania konkretnych klas i ustawię testy jednostkowe przeciwko tym ...NET - Czy możesz przez interfejs, a kiedy nie należy interfejs
Teraz jestem kimś, kto kocha interfejsy, generalnie kończę tylko przekazując/powracając prymitywy lub interfejsy dookoła, kiedy kontroluję kod. Do tej pory uznałem, że jest to idealne, można łatwo dostosować i ulepszyć system ogólnie bez wpływu na systemy zależne.
Oczywiście nie muszę sprzedawać powodów używania interfejsów, ale zastanawiam się, czy to za burtę, żeby wszystko interfejsować, ps. Ja nie mówić o pustych interfejsów jak w coś szalonego jak:
interface IStringCollection : ICollection<string>
{
}
mówię więcej coś takiego:
interface ISomethingProvider
{
ISomething Provide(ISomethingOptions options);
}
Czy to naprawdę na wierzchu? moje rozumowanie jest takie, że każdy typ może zyskać w pewnym momencie na sprzężeniu ... a jedynym prawdziwym problemem, jaki miałem, było to, że musiałem się nauczyć, co według mnie jest lepszym sposobem projektowania klas, ponieważ nie ma interakcje i "hacki".
Chciałbym swoją opinię o tym, czy jest to timebomb i kiedy zdecydujesz się współpracować vs nie ..
PS to naprawdę nie jest tak dużo o tym, jak napisać interfejsów.
Tak, jeśli piszesz zasadniczo tę samą metodę implementacji interfejsu na dwóch klasach, potrzebujesz abstrakcyjnej klasy bazowej. –