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