PHP低耦合,高可擴展性應用的解決方案
PHP低耦合,高可擴展性應用的解決方案
(先把例子寫下來,有時間再完善文字)
一個不能完美解決的方案:
在不同的文件中定義類名相同的類,根據需要包含不同的文件
// 定義在 cls/A.php
class A {
public static function go() {
return 'i m cls/A.php';
}
}
// 定義在 my/A.php
class A {
public static function go() {
return 'i m my/A.php';
}
}
$clsf = 'my/A.php'; // 現在要調用的是my/A.php
require_once $clsf;
$cls = new A();
$cls->go();
A::go();
缺點:
文件cls/A.php的類A不能被my/A.php的類A繼承(當然反過來也一樣)
第二種解決方案:
統一接口,static/const 類型在抽象類中定義,通過變量函數來創建不同的類的實例
interface I {
public function test();
}
abstract class A {
public static $my = array('a', 'b');
public static function go() {
return 'i m public static A::go()';
}
}
class My extends [...]
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.