擅长:python、mysql、java
<p>去吧。不是。有。有状态的。班级。变量。在</p>
<p>调试是一个噩梦,因为类对象现在具有特殊功能。在</p>
<p>有状态类将两(2)个不相关的职责合并在一起:对象创建状态和创建的对象。不要把责任混为一谈,因为它们“似乎”属于一起。在本例中,创建对象的计数由工厂负责。被创造的对象有完全无关的责任(这不容易从问题中推断出来)。在</p>
<p>另外,请使用大写的类名。在</p>
<pre><code>class MyClass( object ):
def __init__(self, name):
self.name=name
def myClassFactory( iterable ):
for i, name in enumerate( iterable ):
yield MyClass( name )
</code></pre>
<p>序列计数器现在是工厂的一部分,在这里状态和计数应该保持不变。在一个单独的工厂里。在</p>
<p>[对于玩代码高尔夫的人来说,这个时间更短。但这不是重点。关键是类不再是有状态的。]</p>
<p>从问题上来讲,Myclass实例是如何创建的还不清楚。由于缺乏任何线索,关于如何使用这家工厂,没有什么可说的了。罪魁祸首是不可饶恕的。可能是遍历列表、文件或其他iterable数据结构的东西。在</p>
<p>另外,对于刚从Java起步的人来说,factory对象只是一个函数。不需要更多了。在</p>
<hr/>
<p>因为这个问题的例子还不清楚,所以很难知道为什么(1)两个独特的对象是用(2)一个计数器创建的。这两个唯一的对象已经是两个唯一的对象,不需要计数器。在</p>
<p>例如,Myclass中的静态变量在任何地方都不会被引用。这使得我们很难理解这个例子。在</p>
^{pr2}$
<p>如果count或last value实际用于某物,那么可以创建一个可能有意义的示例。在</p>