다른 공급 업체와 재고를 확인하는 웹 스토어 용 PHP 스크립트를 작성하려고합니다. 불행하게도 그렇게하는 방법은 각 공급 업체마다 완전히 다릅니다. 나는 하나의 작업 루틴을 가지고 있지만, 약간 다른 스크립트를 작성하는 대신 동일한 코어를 사용하고 각 공급자마다 별도의 구문 분석 루틴을 사용합니다. 그런 식으로 새로운 파싱 파일을 작성하고 올바른 위치에 드롭함으로써 새로운 공급자에 대한 지원을 추가 할 수 있습니다. phpclass 내의 함수 선택
나는 원래 공급자는 그 각각에 대해 서로 다른 것 같이, 포함 된 파일 내에있는() getproduct와class Supplier{
function __construct($sup = "") {
$f = "supplier_" . $sup . ".php";
if (file_exists($f)) {
include_once $f;
}
}
}
인과
$ref = "123456";
$supplier = new Supplier("CompanyOne");
$product = $supplier->getproduct($ref);
echo "Product with supplier reference " . $ref . " is " . $product["name"];
같은 것을 예상 것입니다.
그러나 포함 된 루틴이 클래스 자체보다는 생성자의 컨텍스트 내에서 끝나기 때문에이 방법이 효과가 있을지 잘 모르겠습니다.
이것은 일반적인 상황이되어야하지만, include, extend, callbacks 등을 보는 데 오래 동안 보냈으며,이를 수행하는 최선의 방법을 찾기 위해 무엇을하고 싶은지 설명하기 위해 모든 방법으로 검색을 시도했습니다. 아무것도없이 올라가지.
내가 잘못된 나무를 짖고 있습니까? 이 일을하는 가장 좋은 방법은 무엇일까? 내가 런타임까지 이름을 알지 못하는 몇 가지 다른 코드 집합을 포함하고 싶다는 것을 명심해야한다.
이렇게하는 객체 지향적 인 방법은 상속 또는 전략 패턴을 구현하는 것입니다. 따라서 각 고객에 대해'Supplier'에서 상속받은 클래스를 만들고'getproduct' 메서드를 상속 (상속 방식)하거나 GetProductStrategy 클래스 (실제로 서브 클래스 중 하나)를 받아들이는 일반적인'Supplier '를 갖습니다. 제품 (전략 aproach). 나는 더 간단하고 마음이 덜 부끄럽기 때문에 (특히 중학교 프로그래머를 위해) – J0HN