对于某些人来说,这个问题可能很明显,但我刚开始用Web应用程序(特别是PHP)开始抓住多层体系结构的表面。我有一个包含多个对象的库,它正在迅速扩展。我总是试图从可重用性的角度思考问题,并将我的项目分解为小的,可重用的和松散耦合的组件,这样我不仅创建项目,而且还为未来的项目创建部件。我试图设计一种包管理系统,这样我就可以停止在包含对象中使用绝对路径。我想有一个文件包含我的库中的每个类文件。随着包含,我想添加一个“单身”模式的类,将允许我抓住库中的每个对象的实例按需。我打算为每个对象创建一个静态获取器,以返回对新实例的引用。基本上,这样的事情...PHP OOP架构问题
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;
}
}
}
然后,如果我想获得一流的...
include('pacman.php');
$ClassA = pacman::GetPackage('classa');
我意识到这是一个非常基本的实现。我的例子只涵盖了最低限度。我的问题是没有实现这一点;相反,这是一个问题,从包含的数百个未被证实的类是否会对性能产生显着影响。如果是这样,是否有人知道解决方法?我无法告诉你,要追踪数百个按内容排序成董事的班级的相对路径是多么困难。
[在尤达的声音]在你可以重用之前,你必须先使用。关注未来项目对目前项目线索失败的需求。 – cleong
没有先入为主。为什么我会花2个小时创建一个项目特定的组件,当我可以采取2:30并创建一个通用的可重用组件。长期而短暂,它更有意义。我宁愿在500个具有多态性的地方使用单个泛型函数,而不是通过代码库分散500个变体。你想谈谈噩梦 –