如果想利用单个类做太多事,其内就会出现太多实例变量。
可以使用extract class 将几个变量一起提炼至新类内。提炼时应该选择类内彼此相关的变量,将它们放在一起。
通常如果类内的数个变量有着相同的前缀或字尾,这就意味有机会把它们提炼到某个组件内。如果这个组件适合作为一个子类,你会发现extract subclass往往比较简单。
有时候类并非在所有时刻都使用所有实例变量。或许可以多次使用extract class或extract subclass。
先确定客户端如何使用它们,然后运用extract interface为每一种使用方法提炼出一个接口。
如果large class是个GUI类,可能需要把数据和行为移到一个独立的领域对象去。可能需要两边各保留一些重复数据,并保持两边同步。duplicate observed data。