【发布时间】:2009-05-21 20:09:57
【问题描述】:
我看到的一个非常常见的模式(我选择 Zend 框架,只是因为在这个问题的那一刻我正在处理它),是这样的:
class My_Form extends Zend_Form {
public function init() {
$this->addElement();
}
}
Zend_Form 不是一个抽象类,但完全可以单独使用。这似乎被“推荐”为将您的表单“封装”成一个不错的类的地方。
这是否违反了 Liskov 替换原则? Zend_Form 的每个子类都将具有与基类截然不同的行为。为此使用组合会更好,还是我完全误解了这个原则?
【问题讨论】:
标签: oop zend-framework liskov-substitution-principle