Saya sedang mengembangkan aplikasi yang akan digunakan untuk membuka dan menutup katup di lingkungan industri, dan memikirkan sesuatu yang sederhana seperti ini: -
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
}
}
(Implementasi akan menulis beberapa byte data ke port serial untuk mengontrol katup - "alamat" yang berasal dari nama katup, dan "1" atau "0" untuk membuka atau menutup katup).
Pengembang lain bertanya apakah kita harus membuat kelas terpisah untuk setiap katup fisik, yang jumlahnya puluhan. Saya setuju akan lebih baik untuk menulis kode seperti PlasmaValve.Open()
daripada ValveController.OpenValve("plasma")
, tetapi apakah ini berlebihan?
Juga, saya bertanya-tanya bagaimana cara terbaik untuk menangani desain dengan beberapa persyaratan masa depan hipotetis dalam pikiran: -
- Kami diminta untuk mendukung jenis katup baru yang membutuhkan nilai berbeda untuk membuka dan menutupnya (bukan 0 dan 1).
- Kami diminta untuk mendukung katup yang dapat disetel ke posisi apa pun dari 0-100, daripada hanya "terbuka" atau "tertutup".
Biasanya saya akan menggunakan warisan untuk hal semacam ini, tetapi saya baru-baru ini mulai mendapatkan sekitar "komposisi atas warisan" dan bertanya-tanya apakah ada solusi yang lebih licin yang bisa didapat dengan menggunakan komposisi?