我一直在PHP 5本地设计一个站点,但遇到了一些我现在需要建议的设计问题。面向对象的设计问题
当前网站有三个功能,每个功能都有一个类。这些特点如下:
- 一个博客
- 好友列表
- 一组图像
我有一个类为每个但每班我基本上定义了一个类似的方法是获取所有[博客|朋友|图片]。我想知道你们中的任何一个人是否知道如何将这些类减少得更薄,并且可能在所有三个特征之间通用的一个类对于每个特征都是相同的所有方法。 (即getAllById($ feature,$ id))。
一个例子功能为我现有的博客等级如下表所示:
function getBlogsByUserId($userId) {
global $db;
$blogs = array();
$db->where(array("userId"=>$userId));
$rows = $db->get("blog")->fetch(0);
foreach($rows as $row) {
$blog = new Blog();
$blog->id = $row['id'];
$blog->userId = $row['userId'];
$blog->content = $row['content'];
$blogs[] = $blog;
}
return $blogs;
}
注:我已经定义我自己的东西,DB类,所以不要担心。
我已经看过网关设计模式,但还没有找到解决方案。 我也希望这可以重复使用,所以如果我增加功能到七个或更多,那么我不会改变很多类。
谢谢, 马特
我在这里唯一的问题是,对于$ item-> content = $ row ['content']的东西,这些对于所有的功能都是不同的,例如,图像类将有一个文件名,其中博客将具有内容。这里有什么建议?除此之外,它的所有非常感谢! – phpNutt 2009-12-16 17:33:46
@Matt:根据您的评论更新代码。请注意setValues()方法的添加。 – 2009-12-16 17:39:59
谢谢卢卡斯! :-) – phpNutt 2009-12-16 21:03:37