내가이 유형의 질문을할만한 장소인지 확신 할 수 없으므로 관련이없는 경우이 질문을 닫으십시오.OO 디자인 관련 문제
저는 OO 디자인에 대해 배우고 있으며 간단한 로봇 시스템에 좋은 디자인을 만드는 데 문제가 있습니다. 여기에 그 요지가 있습니다 :
드라이버는 로봇 객체를 조작합니다. Robot
은 BasicRobot
및 HandicapRobot
이 구현하는 인터페이스입니다.
여기에 문제가 있습니다. BasicRobot
은 코드를 모두 가지고 있으며 HandicapRobot
은 두 변수 만 다릅니다. 즉, BasicRobot
에는 모든 방향의 센서가 있고 HandicapRobot
에는 왼쪽 및 오른쪽 센서 만 있습니다. 그들은 매우 유사하므로 HandicapRobot
을 BasicRobot
에서 상속 받았습니다.
그러나 어떤 경우에는 BasicRobot
만 사용할 수 있으며 HandicapRobot
을 사용하는 것은 적절하지 않습니다. 부모 클래스가 필요할 때마다 하위 클래스를 사용할 수 있으므로 대체 규칙을 위반합니다.
나는 우아한 방법으로이 문제를 해결하는 방법을 잘 모르겠습니다. HandicapRobot
을 없애고 BasicRobot
에 대한 센서 수정자를 생성해야합니까?
의미를 명확히하기 위해 핸디캡 로봇이 일반 로봇이지만 "고장난"것으로 간주됩니까? 그렇다면, 나는 그것이 자신의 클래스라는 것이 합리적이라고 확신하지는 않지만 대신에 기본 로봇의 깨진 버전처럼 작동하도록 엔트로피를 내장 할 것입니다. – trnelson
@trnelson 더 작은 버전의 BasicRobot으로 간주됩니다. 능력이 적습니다. – mrQWERTY
"어떤 상황에서는"기본 로봇 만 사용할 수 있다는 것은 무엇을 의미합니까? 그리고 두 개의 로봇이 변수 값으로 만 다른 경우 다른 클래스가 아닌 동일한 클래스의 인스턴스처럼 들릴 것입니다. –