擅长:python、mysql、java
<p>不要在不可变的类上浪费时间。</p>
<p>有些事情你可以做的远比创建一个不可变的对象要简单得多。</p>
<p>这里有五种不同的技巧。你可以从中挑选。任何人都可以工作。一些组合也会起作用。</p>
<ol>
<li><p>文件。事实上,他们不会忘记的。给他们荣誉。</p></li>
<li><p>单元测试。使用一个简单的模拟来模拟应用程序对象,该模拟将<a href="https://docs.python.org/2/reference/datamodel.html#object.__setattr__" rel="nofollow">^{<cd1>}</a>作为异常处理。对对象状态的任何更改都是单元测试中的失败。它很简单,不需要任何精心的编程。</p></li>
<li><p>重写<code>__setattr__</code>以在每次尝试写入时引发异常。</p></li>
<li><p><a href="https://docs.python.org/2/library/collections.html#collections.namedtuple" rel="nofollow">^{<cd3>}</a>。它们是不可变的。</p></li>
<li><p><a href="https://docs.python.org/2/library/collections.html#collections.Mapping" rel="nofollow">^{<cd4>}</a>。它是不可变的,但您确实需要实现一些方法才能使其工作。</p></li>
</ol>