我一直在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