长久以来,我一直寻找把过大的类拆分的方法,我曾经使用过的,也就是把一些功能提取成一个类使用has-a的关系包含。但是这将造成极大的文件关联、依赖性,当编译需要的时间让你无法容忍的时候,你会对降低依赖性乐此不疲。
我使用了继承,把数据抽象在基类里,这可以降低操作方法的文件依赖性,但是效果不明显。
直到我疯狂的使用模板,如果你喜欢,你还可以定制逻辑上只接受特定类的模板,而这个模板本身编译的时候不需要它依赖的特定逻辑类。这种方法尤其使用于在你需要调用者的某一个或有限几个数据时,模板方法是非常好的选择。
Loki的想法是,模板有很好的类型型,继承有很好的扩张性,二者结合起来你在获得扩张性的同时保留了严格的类型性。
我认为,这是我目前可以想到的比较不错的解决文件依赖的办法了。