多个继承类名与单个和选择性包含


Multiple inheriting class names versus single and selective include

目前我基本上有:

A.php:         class A { ... }
A1.php:        class A1 extends A { A1 stuff... }
A2.php:        class A2 extends A { A2 stuff... }
...
factory.php:   create($obj) {return new $obj;}

我正在考虑将其更改为:

A.php:         class A { ... }
A1.php:        class B extends A { A1 stuff... }
A2.php:        class B extends A { A2 stuff... }
...
factory.php:   create($obj) { require ($obj.".php"); return new B; }

有什么意见,或前方的危险吗?每个 PHP 会话只会实例化一个类。

我的第一印象:

  • 您永远不能同时将两个类加载到内存中。即使你通常不这样做,它也会使,例如,单元测试变得困难。
  • 如果您的调试器告诉您类 B 有问题,但不是哪个B,则调试会变得更加困难。
  • 类描述逻辑单元。不应有两个名称相同但功能不同的逻辑单元。