Endüstriyel bir ortamda vanaları açmak ve kapatmak için kullanılacak bir uygulama geliştiriyorum ve böyle basit bir şey düşünüyordum: -
public static void ValveController
{
public static void OpenValve(string valveName)
{
// Implementation to open the valve
}
public static void CloseValve(string valveName)
{
// Implementation to close the valve
}
}
(Uygulama, vanayı kontrol etmek için seri porta birkaç bayt veri yazacaktır - vana adından türetilen bir "adres" ve vanayı açmak veya kapatmak için "1" veya "0").
Başka bir geliştirici, her bir fiziksel valf için düzinelerce olan ayrı bir sınıf oluşturup oluşturmamamız gerektiğini sordu. Bunun PlasmaValve.Open()
yerine kod yazmak daha hoş olacağını kabul ediyorum ValveController.OpenValve("plasma")
, ama bu aşırı mı?
Ayrıca, akıldaki gelecekteki birkaç gereksinim ile tasarımın en iyi nasıl çözüleceğini merak ediyordum:
- Açmak ve kapatmak için farklı değerler gerektiren yeni bir vanayı desteklememiz istenir (0 ve 1 değil).
- Sadece "açık" veya "kapalı" yerine 0-100 arasında herhangi bir konuma ayarlanabilen bir valfi desteklememiz istenir.
Normalde bu tür bir şey için kalıtım kullanırdım, ama son zamanlarda kafamı "kalıtım üzerinde kompozisyon" etrafında toplamaya başladım ve kompozisyon kullanarak daha ince bir çözüm olup olmadığını merak ettim?