ฉันกำลังพัฒนาแอพที่จะใช้ในการเปิดและปิดวาล์วในสภาพแวดล้อมอุตสาหกรรมและกำลังคิดถึงบางสิ่งที่เรียบง่ายเช่นนี้: -
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
}
}
(การนำไปใช้นั้นจะเขียนข้อมูลสองสามไบต์ไปยังพอร์ตอนุกรมเพื่อควบคุมวาล์ว - "ที่อยู่" ซึ่งได้มาจากชื่อของวาล์วและ "1" หรือ "0" เพื่อเปิดหรือปิดวาล์ว)
นักพัฒนาอีกคนถามว่าเราควรสร้างคลาสแยกต่างหากสำหรับแต่ละวาล์วทางกายภาพซึ่งมีอยู่เป็นสิบหรือไม่ ฉันยอมรับว่ามันจะดีกว่าที่จะเขียนโค้ดเหมือนPlasmaValve.Open()
มากกว่าValveController.OpenValve("plasma")
แต่นี่เป็น overkill หรือไม่
นอกจากนี้ฉันยังสงสัยว่าวิธีที่ดีที่สุดในการจัดการกับการออกแบบโดยคำนึงถึงความต้องการในอนาคตของสมมุติสองสามข้อ: -
- เราได้รับการร้องขอให้สนับสนุนวาล์วชนิดใหม่ที่ต้องการค่าต่าง ๆ ในการเปิดและปิด (ไม่ใช่ 0 และ 1)
- เราถูกขอให้สนับสนุนวาล์วที่สามารถตั้งค่าได้ตั้งแต่ 0-100 มากกว่าเพียงแค่ "เปิด" หรือ "ปิด"
โดยปกติฉันจะใช้การสืบทอดสำหรับสิ่งประเภทนี้ แต่ฉันเพิ่งเริ่มที่จะรับหัวของฉัน "องค์ประกอบมากกว่าการสืบทอด" และสงสัยว่ามีวิธีการสั่นไหวที่จะมีการใช้องค์ประกอบ?