擅长:python、mysql、java
<p>我完全同意@djna的回答,即特定用例是完全合法的——这里,它是一个对象需要在“出生”时将自己注册到一组指定的注册中心的例子。你知道吗</p>
<p>它的一个非常尖锐且极为常见的子类是观察者对象,它的存在完全是为了观察一个给定的可观察物——非常好地将可观察物传递给观察者的初始值,以及确保类不变性的正确方法“这个观察者类的实例在任何时候都连接到一个观察者”,如果只在初始化完成后进行注册,则不会在“出生时”建立。你知道吗</p>
<p>其他类似的例子包括一个widget对象,它必须一直存在于一个容器窗口中:实现它会有点奇怪,除非widget将父对象作为初始值参数,并告诉父对象“嗨,我是你的新孩子!”。你知道吗</p>
<p>至少在这种情况下,您可以想象强制父对象或可观察对象拥有一个创建和注册新对象的方法。在许多类似这样的情况下,这种方法的本质是由内而外的——因为约束必须用多个变量注册,所以要求其中任何一个特定的变量来创建约束将是“违反规则的”。另一方面,您提供的代码非常自然。你知道吗</p>
<p>只有在不能合理地被框定为新对象“注册自身”的情况下,我才会感到一些怀疑(还有一些其他合法的,比如在出生时创建和注册其他辅助对象的对象,但它们远没有那么常见)。你知道吗</p>