同级的类如何访问。求效果高的方法

#1 redguan

第一个问题:

例如有article,news,forum等逻辑类

分类是文章,新闻,论坛等

都需要调用一个member类(用户类)。


要么将member类设为他们的父。再将spmodel设为member的父,但这样破坏了SP的结构了。

要么就将member类设为静态类。但静态类过于固化,无法有实例类的特点。不是最好的方法。

=============================================
第二个问题:

A类继承了spmodel 后,可以调用db类。但同时又需要调用第三方B类。

DB类和B类是同级,如何让B类访问DB类?

我觉得这个是PHP的缺点之一。

B类继承了SPMODEL类后,无法再继承DB类。这个如何解决?

=============================================

2011-10-22 20:13:26

#2 jake

其实是同一个问题,多级继承PHP是允许的,SP也是推荐的,没有什么所谓的“这样破坏了SP的结构”。

SP的结构正是让开发者可以更好地通过继承,达到最好的功能扩展性和低重复性,没有说过不能三级或者更多级别的继承。而且,SP的核心MVC结构,比其他框架的MVC架构更少一层,所以在三级继承的时候,等同其他框架二级继承的效率。

另外,如果疑惑于PHP的单父类继承,其实像JAVA也是只能单父类继承,不过没关系,JAVA是通过“接口”来达到多父类继承的效果,而不破坏面向对象的理念;而PHP5,现在也支持了接口,所以同样是解决了此问题。

在SP里面,直接使用接口是没有任何问题的。

具体可以参考PHP手册 http://cn.php.net/manual/zh/spl.interfaces.php

2011-10-22 21:08:00