擅长:python、mysql、java
<p>通常,最好的做法是让对象知道包含它们的内容。将用户传入组,而不是将组传递给用户。仅仅因为您当前的应用程序只使用一次“用户”,每个组一个,每个帐户一个组,并不意味着您应该用这些知识硬编码所有的类。如果您想在其他地方重用User类呢?如果您以后需要支持多个AccountContainer和共同的用户怎么办?在</p>
<p>您还可以从<a href="http://docs.python.org/library/collections.html#collections.namedtuple" rel="nofollow noreferrer">named tuples</a>中获得一些里程,特别是对于您的用户:</p>
<pre><code>User = collections.namedtuple('User', ('name', 'age'))
class Group:
def __init__(self, name, users=()):
self.name = name
self.members = dict((u.name, u) for u in users)
def add(user):
self.members[user.name] = user
</code></pre>
<p>等等</p>