Tôi đang phát triển một ứng dụng sẽ được sử dụng để mở và đóng van trong môi trường công nghiệp và đã nghĩ đến một thứ đơn giản như thế này: -
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
}
}
(Việc triển khai sẽ ghi một vài byte dữ liệu vào cổng nối tiếp để điều khiển van - một "địa chỉ" có nguồn gốc từ tên van và "1" hoặc "0" để mở hoặc đóng van).
Một nhà phát triển khác hỏi liệu chúng ta có nên tạo một lớp riêng cho mỗi van vật lý hay không, trong đó có hàng tá. Tôi đồng ý sẽ tốt hơn nếu viết mã như vậy PlasmaValve.Open()
hơn ValveController.OpenValve("plasma")
, nhưng điều này có quá mức không?
Ngoài ra, tôi đã tự hỏi làm thế nào tốt nhất để giải quyết thiết kế với một vài yêu cầu giả định trong tương lai: -
- Chúng tôi được yêu cầu hỗ trợ một loại van mới yêu cầu các giá trị khác nhau để mở và đóng nó (không phải 0 và 1).
- Chúng tôi được yêu cầu hỗ trợ một van có thể được đặt ở bất kỳ vị trí nào từ 0-100, thay vì chỉ đơn giản là "mở" hoặc "đóng".
Thông thường tôi sẽ sử dụng tính kế thừa cho loại điều này, nhưng gần đây tôi đã bắt đầu hiểu về "thành phần trên sự kế thừa" và tự hỏi liệu có một giải pháp khéo léo nào được sử dụng thành phần không?