如何设计一个类。
>写下字。你开始这样做。有些人不想知道为什么他们有问题。
>将你的单词集合扩展为关于这些对象将要做什么的简单语句。也就是说,写下你将对这些事情做的各种计算。你的30个狗,24测量,4联系人和几个“参数”每个联系人的短名单是有趣的,但只是部分的故事。你的“每个爪子的位置”和“比较同一只狗的所有爪子,以确定哪个联系人属于哪个爪子”是对象设计的下一步。
>下划线名词。认真。一些人讨论这个的价值,但我发现,对于第一次OO开发人员它帮助。强调名词。
>复习名词。类似“参数”和“测量”的通用名词需要替换为适用于您的问题域中的问题的特定的具体名词。具体细节有助于澄清问题。泛型简单地删除细节。
>对于每个名词(“contact”,“paw”,“dog”等),写下该名词的属性和该对象所参与的动作。不要快捷。每个属性。 “数据集包含30只狗”例如是重要的。
>对于每个属性,标识它是否与定义的名词或某种其他类型的“原始”或“原子”数据的关系,如字符串或浮动或不可约。
>对于每个动作或操作,你必须确定哪个名词有责任,哪些名词只是参与。这是一个“可变性”的问题。一些对象得到更新,其他的不更新。可变对象必须对其突变负全部责任。
>此时,您可以开始将名词转换为类定义。一些集合名词是列表,字典,元组,集合或命名的元组,你不需要做很多工作。其他类更复杂,要么是因为复杂的导出数据,要么是因为执行了一些更新/突变。
不要忘记使用unittest隔离测试每个类。
此外,没有法律规定类必须是可变的。在你的情况下,例如,你几乎没有可变数据。您拥有的是派生数据,由源数据集的变换函数创建。