合并两个PHP对象(类)

时间:2012-05-24 18:53:00

标签: php class object

我正在开发一个项目,需要很多单独的对象(类)才能协同工作。我想出了解决问题的方法,但我只是想听听其他一些观点,因为我觉得我错过了一些东西。

基本上,我有一个访问者和一个位置类,每个都被初始化并存储在一个变量中,例如$ visitor和$ location;两者都具有访问者唯一的数据和页面调用中引用的位置。

我想要/需要做的就是创建一个'桥',这样我就可以调用一个会影响这两个对象的方法。例如,我希望能够调用$ bridge-> favorite();除了增加该地点的收藏数量之外,它还会将最喜欢的参考添加到访问者的个人资料中。

我现在所做的基本上是一座桥梁:

$bridge = new Bridge($locationclass, $visitorclass);
$bridge->favorite();

所以它基本上调用了我的另一个类'bridge',用方法收藏,然后使用已经设置的两个类。我认为这是一个很好的解决方案,但我觉得我错过了一个更好的解决方案。

所有输入都非常有用,谢谢您的时间!

2 个答案:

答案 0 :(得分:3)

如果您需要执行此类操作,则表示您的应用程序设计不合理。

要回答您的示例,您需要做的只是将位置添加到访问者最喜欢的地方 如果您想要计算添加到收藏夹的位置的次数,计数有多少访问者在其收藏中拥有该位置。不要存储两次相同的信息。

答案 1 :(得分:1)

class Bridge{

private $classes;

function  construct($classes)
{
 $this->classes  = $classes;
}

function _call($name,$params)
{
  foreach($classes as $class)
  {
    if(method_exists($class,$name)){
     return call_user_method_array($name,$class,$params);
    }
  }else{
   ...
  }
}