2013-05-03 125 views
0

我想弄清楚是否有解決以下問題:對象創建變量構造值

可以說我有一個名爲OpenFiles的類。構造函數需要一個路徑來指定要打開的文件以及OpenFiles所需的對象。

class OpenFiles 
{ 
    public function __construct(Object $object,$filePath) 
    { 
     //code  
    } 
} 

$對象總是相同的,可以在某種容器中找到。但是每次需要這個類時,filePath都是不同的。

我的問題是當這個類更改時,我需要遍歷所有的代碼並進行相應的編輯。

有沒有這樣的模式或解決方案?或者這是不可避免的?

在此先感謝!

+0

爲什麼你需要你的$ Object參數..請elaboratye – Mortalus 2013-05-03 12:06:25

+0

可能是配置或權限對象。 – John 2013-05-03 13:07:57

回答

0

我會建議使用你的對象的接口,並使用接口作爲你的函數的輸入參數。

interface iPermissionCollection 
{ 
    public function getPermission($name); 
} 

然後改變類,使用接口,而不是對象。

class OpenFiles 
{ 
    public function __construct(iPermissionCollection $object,$filePath) 
    { 
     //code  
    } 
} 

如果您想在稍後發送不同的類,請確保它將執行iPermissionCollection

所以問題不在於如何處理代碼重構,如果我chage我多次使用的類構造函數,但問題是我將如何編寫這樣一個類,它完全使用它,然後我可以縮放。