擅长:python、mysql、java
<p>工厂方法(替代构造函数)确实是类方法的经典示例。</p>
<p>基本上,类方法在任何时候都是合适的,因为您希望有一个方法自然地适合于类的命名空间,但它不与类的特定实例相关联。</p>
<p>例如,在优秀的<a href="http://pypi.python.org/pypi/Unipath/0.2.1" rel="noreferrer">unipath</a>模块中:</p>
<h2>当前目录</h2>
<ul>
<li><code>Path.cwd()</code>
<ul>
<li>返回实际的当前目录;例如<code>Path("/tmp/my_temp_dir")</code>。这是一个类方法。</li>
</ul></li>
<li><code>.chdir()</code>
<ul>
<li>使self成为当前目录。</li>
</ul></li>
</ul>
<p>由于当前目录是进程范围的,<code>cwd</code>方法没有应该与之关联的特定实例。但是,将<code>cwd</code>更改为给定<code>Path</code>实例的目录确实应该是实例方法。</p>
<p>嗯。。。由于<code>Path.cwd()</code>确实返回了一个<code>Path</code>实例,我想它可以被认为是一个工厂方法。。。</p>