나는 한 다음 코드 그래서재정의 인터페이스 방법 PHP
class Model_MyAbstractClass {
}
class Model_MyClass extends Model_MyAbstractClass {
}
interface doStuff {
function update(Model_MyAbstractClass $model);
}
class Mapper_MyClass implements doStuff{
function update(Model_MyClass $model){
}
}
왜하지 않습니다 PHP에서이 작품? Model_MyClass는 여전히 Model_MyAbstractClass입니다. 나는 유사한 방법으로 5 개의 클래스를 가지고있다. 모든 차이점은 각 매퍼가 일부 모델을 가지고 있으며, 모두 모델 _MyAbstractClass를 확장한다는 것입니다.
실제로이 작업을 수행 할 방법이 없다면 남은 유일한 해결책은 다음과 같습니다. 매개 변수가 유일한 차이 (모두 DRY가 아님)와 함께 각 인터페이스를 만듭니다.
Model_MyAbstractClass가 필요한 Model_MyClass의 인스턴스이고 오류가 발생하면 각 함수를 체크인하십시오. 필요한 매개 변수 유형을 명시 적으로 요구해야하므로 바보 같은 전략 인 것 같습니다.