이것은 아마도 매우 직접적인 대답 일 것이지만 약간의 조언은 인정 될 것입니다.객체 지향 일반 메소드 : 인터페이스, 초록 또는 다른 것
내 모든 개체가 동일한 load() 및 loadMultiple() 메서드를 사용하는 작은 시스템이 있습니다. 각 코드가 정확히 동일합니다. 아주 간단한 예제입니다.
public static function load($id) {
// Instantiate the object
$object = new self($id);
return $object;
}
예제 위의 코드는 분명히 인터페이스에 갈 수 없어,하지만 난합니다 (loadMultiple 방법 동일) 객체를 인스턴스화하고로도 그것은 추상 클래스에 갈 수 있습니다.
가장 좋은 해결책은 무엇입니까? 현재 다음과 같은 상위 클래스를 만들 계획입니다.
class Object_Model {
public function load() {
// Code here
}
public function loadMultiple() {
// Code here
}
}
class Object1 extends Object_Model {
}
class Object2 extends Object_Model {
}
하지만 더 좋은 방법이 있어야합니다. 거기 있니? 클래스의 이름을 인스턴스화하고 해당 ID :
function load($class, $id) {
return new $class($id);
}
그건 현재의 코드가 정적 방법을 사용하기 때문에
는
감사했다. 후기 정적 바인딩이 완벽 해 보입니다. 그러나 우리 서버가 지원할 것이라고는 생각하지 않습니다. 나는 당신과 Ionut이 말하는 것을 이해합니다.하지만 제가 우아함에 가까울 때 거꾸로 한 것처럼 보입니다. 5.3. – PJE