我正在创建自己的 PHP 框架(用于学习体验),但我无法决定其中哪一个是更好的做法。
创建一个注册表类,其中包含每个类的名称。其他类会调用注册表查找类名。
创建一个 AliasRegistry 类,该类将为每个类创建别名。
当使用第一个设计访问类名时,我的代码将如下所示:
$delegateClass = $this->registry->delegate;
$object = new $delegateClass;
当访问具有第二种设计的类时,我的代码将如下所示:
$object = new _NI_ALIAS;
它还将允许我动态扩展其他类并实现接口
class Template implements _NI_ALIAS
第二个对我来说更有意义,特别是因为我可以将它包含在框架的命名空间中;但出于某种原因,我看到人们将此标记为垫练习,因为它会影响全球范围内的事情。
你会说哪个是更好的做法?