Witam

Proszę o poradę doświadczonych kolegów w jaki sposób w C# zrealizować taką strukturę:

Klasa główna, powiedzmy urządzenie, może obsługiwać jeden z dowolnie wybranych protokołów. Protokoły to odrębne klasy, posiadające jednak takie same metody lub interfejsy ale różnie implementowane. Użytkownik może oczywiście zmienić przypisanie protokołu do urządzenia przez np. zmianę w pliku konfiguracujnym.