如果想利用单个类做太多的事,其内往往就会出现太多实例变量。这样 重复代码(Duplicated Code)就接踵而至了。
运用Extract Class (提炼类)将几个变量一起提炼到新类里。提炼类时应该选择类内彼此相关的变量,将它们放在一起。通常类内的数个变量有相同的前缀或字尾,这就意味有机会把它们提炼到某个组件内。如果这个组件适合作为一个子类,就可以运用 Extract Subclass (提炼子类)。
有时类并非在所有时刻都使用所有实例变量。可多次使用Extract Class (提炼类)和Extract Subclass (提炼子类)
一个类如果拥有太多代码,往往也适合使用Extract Class (提炼类)和Extract Subclass (提炼子类)。技巧:先确定客户端如何使用它们,然后运用 Extract Interface (提炼接口) 为每个使用方式提炼出一个接口。可帮助你看清楚如何分解这个类。
如果是个GUI类,可能需要把数据和行为移到一个独立的领域对象去。可能需要2边各保留一些重复数据,并保持2边同步。Duplicate Observed Data (复制"被监视数据")告诉你该这么做。