산업 환경에서 밸브를 열고 닫는 데 사용될 앱을 개발 중이며 다음과 같은 간단한 것을 생각하고있었습니다.
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")
하지만, 이것은 과잉입니까?
또한 몇 가지 가상의 미래 요구 사항을 염두에두고 디자인을 다루는 가장 좋은 방법이 궁금합니다.
- 밸브를 열고 닫는 데 다른 값을 요구하는 새로운 유형의 밸브를 지원해야합니다 (0 및 1 아님).
- 우리는 단순히 "열기"또는 "닫힘"이 아닌 0-100의 어떤 위치로도 설정할 수있는 밸브를지지해야합니다.
일반적으로 이런 종류의 상속을 사용하지만 최근에는 "상속 상속 구성"에 대해 머리를 get 기 시작했고 컴포지션을 사용했을 때 더 매끄러운 솔루션이 있는지 궁금합니다.