这个问题对某些人来说可能很明显,但我才刚刚开始接触 Web 应用程序的多层架构的表面,尤其是 PHP。我有一个包含多个对象的库,并且它正在迅速扩展。我总是尝试从可重用性的角度来思考,并将我的项目分解成小的、可重用的、松散耦合的组件,这样我不仅要创建项目,还要为未来的项目创建部分。我正在尝试设计一种包管理系统,以便我可以停止在包含对象的语句中使用绝对路径。我想有一个包含我的库中每个类文件的文件。除了包含,我想添加一个带有“单例”的类 模式将允许我按需获取库中每个对象的实例。我计划为每个返回对新实例的引用的对象创建一个静态 getter。基本上,像这样的东西......
include('classa.php');
include('classb.php');
include('classc.php');
class pacman{
private static $instance_stack;
public static function GetPackage($strPackage){
if(!self::$instance_stack){
self::$instance_stack['classa']=new ClassA();
self::$instance_stack['classb']=new ClassB();
self::$instance_stack['classc']=new ClassC();
}
if(array_key_exists(strtolower($strPackage),self::$instance_stack)){
return self::$instance_stack[strtolower($strPackage)];
}
else{
return false;
}
}
}
那么如果我想上a课...
include('pacman.php');
$ClassA = pacman::GetPackage('classa');
我意识到这是一个非常基本的实现。我的示例仅涵盖最低限度。我的问题不是实现这个;相反,问题在于包含的数百个未实例化的类是否会对性能产生显着影响。如果是这样,有人知道解决方法吗?我无法告诉您跟踪数百个按内容分类为导向器的类的相对路径有多么困难。