2
我已經實現了兩個類isbn10和isbn13。我想創建一個類ISBN,這樣實例化時,我會得到ISBN10類型或網路書店的目的,根據給予ISBN類的構造函數的參數:從父類中實例化正確的子類
$isbn_code = new isbn('978-3-16-148410-0');
我知道我可以做這樣的事情有一個靜態方法:
class isbn {
public static function new($isbn) {
if (preg_match('/' . isbn13::isbn_regex . '/', $isbn)) {
return new isbn13($isbn);
} else if (preg_match('/' . isbn10::isbn_regex . '/', $isbn)) {
return new isbn10($isbn);
} else {
throw new Exception("Invalid ISBN code", 1);
}
}
}
$isbn_code = isbn::new('978-3-16-148410-0');
然而這是可能的實例化類ISBN並自動獲得ISBN13對象(或ISBN10)?
謝謝,我有一種感覺無法完成,我認爲最好的解決方案是實現一個isbn類。 – moray 2012-04-11 11:27:24