[請益] 多重繼承怎麼解?
如標題
目前正在做資料表的操作物件
想把一些常用的功能獨立出來寫
例如刪除、排序等等
abstract class Delete{
function __construct($tablename)
{
紀錄table名稱以及用來排序的欄位名稱
}
function delete($id)
{
SQL操作 ....
}
}
abstract class Sortable{
function __construct($tablename)
{
紀錄table名稱以及用來排序的欄位名稱
}
function sort($id)
{
SQL操作....
}
function shift($fromid,$toid)
{
}
}
然後,如果我有個Cat的資料表,希望要有刪除、排序兩個功能
我就只要繼承這兩個class就好
class Cat extance Delete,Sortable
{
function __construct()
{
parent::__construct("Cat");
}
//什麼都不用寫就有刪除、排序的功能了
}
當然,這只是理論上
因為最近的物件導向語言,都為了避免死亡鑽石,而不提供多重繼承的功能
PHP當然也不例外
那,請問.....
如果想要實現這樣的功能的話
該怎麼寫?
雖然一般物件導向會意見用 interfaces
但我就是不想寫這麼多次 delete才會想要這樣用
另一種我目前用的折衷方式就是變成這樣
class Cat
{
var $del;
function __construct()
{
$this->del=new Deleteable();
}
function delete($id)
{
$this->del->delete($id);
}
}
但問題是,如果我哪天打算在Deleteable上新增或是刪除function
就得到每個用到Deleteable的class中新增刪除的function
這並不是理想的方式
請問有辦法解決這個問題嗎?
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 122.117.36.2
推
12/10 14:37, , 1F
12/10 14:37, 1F
→
12/10 14:48, , 2F
12/10 14:48, 2F
→
12/10 15:03, , 3F
12/10 15:03, 3F
推
12/10 15:29, , 4F
12/10 15:29, 4F
推
12/10 22:58, , 5F
12/10 22:58, 5F
→
12/11 12:30, , 6F
12/11 12:30, 6F
推
12/11 15:17, , 7F
12/11 15:17, 7F
→
12/11 15:17, , 8F
12/11 15:17, 8F
→
12/11 15:18, , 9F
12/11 15:18, 9F
PHP 近期熱門文章
PTT數位生活區 即時熱門文章