Php 避免额外的类实例化是否有好处?
下面是一些使用Zend Form API创建表单和创建子表单(也称为字段集)的代码Php 避免额外的类实例化是否有好处?,php,refactoring,dry,Php,Refactoring,Dry,下面是一些使用Zend Form API创建表单和创建子表单(也称为字段集)的代码 AnnotationBuilder类似乎没有与其关联的\u构造,因此实例化新的AnnotationBuilder对象是一项轻量级操作 也就是说,我认为可以保留以下代码: $form = (new AnnotationBuilder())->createForm(CustomForm::class); $form->add((new AnnotationBuilder())->createForm
AnnotationBuilder
类似乎没有与其关联的\u构造
,因此实例化新的AnnotationBuilder
对象是一项轻量级操作
也就是说,我认为可以保留以下代码:
$form = (new AnnotationBuilder())->createForm(CustomForm::class);
$form->add((new AnnotationBuilder())->createForm(CustomFieldset1::class));
$form->add((new AnnotationBuilder())->createForm(CustomFieldset2::class));
是否需要重构上述代码,或者保持原样安全吗?就性能而言,我认为除了几个额外的对象实例化之外,不会有任何重大的损失
例如,作为一种替代方法,我正在考虑创建一个变量来保存一个
新的AnnotationBuilder()
,作为本地或类范围,然后根据需要重用该变量。但我并不认为这样做有什么好处。我不认为你有理由不使用$builder=newannotationbuilder()代码>
实例化构建器只会浪费几微秒的时间。可能AnnotationBuilder
有一些内部逻辑,可以对表单中的某些元素进行性能优化,例如使用某种属性缓存,例如
我不建议反复创建任何对象,直到您真正想要获得一个新对象。new AnnotationBuilder()
构造一个新对象。这需要记忆——多少并不重要。如果您热衷于(微观)优化,您希望避免这种情况。除非构建新对象需要它。