X, Y 및 Z가 모두 올바르게 작동하도록 모든 클래스를 구현해야한다고 가정 해 봅시다. 이 경우,이를 강제하기 위해 공통 인터페이스를 구현하도록 할 수 있습니다.강제 클래스가 메소드 집합 중 하나를 구현하도록 강요합니다
이제 내 경우는 약간 다릅니다. 을 구현해야합니다. 중 하나 이상 X, Y 및 Z 중 하나 이상을 반드시 구현해야합니다. 인터페이스는 여기서 나를 도울 수 없습니다. 제가 생각할 수있는 가장 가까운 것은 일반적인 부모입니다 - 그것은 X, Y 또는 Z의 존재를 구조사에서 점검 할 수 있습니다.
나는 이미 부모가있는 클래스에서이 "인터페이스"를 구현해야하기 때문에 여기에서는 상속을 피하고 싶습니다. 그래서 - 이것을하는 또 다른 우아한 방법이 있습니까?
(내가 PHP하고 있어요,하지만 일반적인 OOP 솔루션이 존재하는 경우, 그것은 폭 넓은 고객에게 제공 할 수 있습니다.)
인터페이스가 도움이 될 수 있습니다. 이러한 인터페이스를 공통 인터페이스로 확장하십시오. 당신이 매번 어떤 것이 있는지 확인하고 싶지 않다면, 당신은 상속없이 이것을 어떻게 할 것인지를 아십시오. –
나쁜 아키텍처/디자인과 비슷합니다. "X, Y, Z 중 적어도 하나를 구현해야"하는 이유를 설명해주십시오 (실제 시나리오를 보여주십시오)? –
@WaxCage 우리는 설정 값 접근을위한 클래스를 가지고 있습니다. 일부는 DB에서, 다른 하나는 설정 파일에서, 다른 하나는 하드 코딩 된 배열에서 가져올 수 있습니다. getAsString(), getAsParamObject() ... 또는 이와 유사한 메소드를 통해 이러한 클래스에서 값을 가져올 수 있습니다. 그것은 분명히 나쁜 디자인이지만, 지금은 내가 함께해야만하는 디자인입니다. 이러한 설정 클래스는 종종 수정되고 (깨지기 때문에) 모든 것을 리팩터링하기 전에 기본 함수를 보호하고 싶습니다 (최소한 어떻게 든 값을 얻으려고). –