建议设计问题的解决方案


Suggest solution to Design Issues

我有一个类说照片和代码,比如

class photo  
{  
    public function __construct($UserWhosePhotoToBeGetObj)  
    {    
       $this->UserWhosePhotoToBeGetObj = $UserWhosePhotoToBeGetObj  
    }  
}
public function getPhoto()  
{  
   // some complex logic and query to get detail of photo of user.  
}

现在的问题是,当我想获取多个用户的照片时,如果我循环调用这个类,那么将触发许多查询,如果我创建类photoArr那么我需要在两个类中编写复杂的逻辑。

也许,您可以将基于用户的形成查询的逻辑捆绑在一个函数中,并在多个用户的情况下一次又一次地调用该函数。我想不出避免收集多个用户。

"

photo"听起来像一个数据类。 数据类不应包含用于获取内容的逻辑。在构造函数中传入"要获取照片的用户"似乎也相当错误。

这样的逻辑可能应该放在一个PhotoFetcher类中,该类具有你当前的getPhoto的逻辑。例如getPhotoForUser(User $userForWhichToGetPhoto)。它还可以支持批量获取。