使用双类继承可能会有危险吗?

时间:2013-08-22 23:03:37

标签: php class extends inheritance

我正在使用这种模式:

  • A类扩展了B类
  • C类扩展了A类

示例作为我的代码的一小部分:

class InterfaceController extends AbstractActionController
{
    public function getRole() {
        $userLogin = $this->getAuthService()->getIdentity();
        if ($userLogin != null && $userLogin != "")
        {
            $userData = $this->getUsersLoginTable()->getUserByLogin($userLogin);
            if ($userData) 
            {
                $role = $userData->user_Permissions;
            }
            else
            {
                $role = null;
            }
        }
        return $this->role;
    }    
}

class PostsController extends InterfaceController
{
    public function postsMainViewAction() {
       $layout = $this->layout();
       $layout->setTemplate('mainSite/layout');
       $view = new ViewModel();
       $view->setTemplate('Posts/posts/index');
       return array(
           'role' => $this->getRole()
       );
    }
}

示例基于Zend Framework 2应用程序 然而,我的问题仍然是关于OOP模型的更一般的问题

问题如下: “这种扩展类的使用是否会对应用程序性能产生负面影响?”

1 个答案:

答案 0 :(得分:0)

您给出的示例中最薄弱的地方是您没有显示任何方法(当时我回答了问题)。如果没有给出任何方法,我们只能说它是多余的。

如果您不认为多余是一个问题,那么就没有问题。

由于也没有涉及逻辑,所以你所描述的继承不能破坏逻辑。

希望这会有所帮助。在其他情况下,例如如果您的类实际上有方法,请查找:

  • 基于继承的构图
  • Liskov替代原则