Arka fon
Belirli bir donanım aygıtının kullanımına bağlı bir projem var, ancak bu donanım aygıtını yapmam gereken şeyi yaptığı sürece kimin yaptığı önemli değil. Bununla birlikte, aynı şeyi yapması gereken iki cihazın bile aynı üretici tarafından yapılmadığında farklılıkları olacaktır. Bu yüzden uygulamayı ilgili marka / modelden ayırmak için bir arayüz kullanmayı düşünüyorum ve bunun yerine arayüzün en üst düzey işlevselliği kapsamasını sağladım. İşte benim mimarimin şöyle görüneceğini düşünüyorum:
- Bir C # projesinde bir arayüz tanımlayın
IDevice
. - Cihazı temsil etmek için kullanılacak başka bir C # projesinde tanımlanan bir kütüphanede bir somut var.
- Beton cihazının
IDevice
arayüzü uygulamasını sağlayın. IDevice
Arayüz gibi yöntemler olabilirGetMeasurement
veyaSetRange
.- Uygulamanın beton hakkında bilgi sahibi olmasını sağlayın ve betonu cihazı kullanan ( uygulamayan ) uygulama koduna iletin
IDevice
.
Bunun bunun için doğru yol olduğundan eminim, çünkü o zaman uygulamayı etkilemeden hangi cihazın kullanıldığını değiştirebileceğim (bazen gerçekleşiyor gibi görünüyor). Başka bir deyişle, betonun uygulamalarının nasıl uygulandığı GetMeasurement
veya SetRange
gerçekten nasıl çalıştığı önemli değildir (cihazın üreticileri arasında farklılık gösterebilir).
Aklımdaki tek şüphe, hem uygulamanın hem de cihazın somut sınıfının, hem IDevice
arabirimi içeren kütüphaneye bağlı olmasıdır . Ama bu kötü bir şey mi?
Cihaz IDevice
aynı ad alanında değilse, uygulamanın cihaz hakkında nasıl bilmesi gerekmediğini de göremiyorum .
Soru
Uygulamam ve kullandığı cihaz arasındaki bağımlılığı çözmek için bir arayüz uygulamak için doğru bir yaklaşım gibi mi görünüyor?