这是我在《Refactoring to Patterns》中看到的第一个trick,我觉得很cool,而且很实用。毕竟实际项目中,这种情况还是很常见的。恩。
简单介绍一下Creation Method。由于C++,Java,C#这些语言都会限定构造函数与类同名,(其实我觉得想出这个办法来区别其他函数也是非常cool的),所以如果我们有多种方法、形式、途径来创建类时,就会出现一个类有很多的构造函数。这个时候,如果其他人来调用这个类时,就不太懂得各个构造函数的区别了。好像win32 api中就有很多这种情况,很多class有很多constructor的,像我们这种菜鸟就不知如何下手了。惨惨惨。。。如何解决这个问题呢?我们就来创建一个专门用于创建类的method,就是所谓的creation method了,但是我们提供更容易理解的函数名,such as:createTermLoan(…), createRevolver(…), …每个具体的creation method里面再调用特定的constructor。而且每个creation method都还可以重载的,可谓优点多多阿,活活。
Creation Method的缺点是,可能会增加class的负担,突然一下子多了那么多的method。这个时候,我们就可以考虑把它重构为factory method模式了。呵呵。
还好俺看过设计模式,而且先看得创建型设计模式,对factory还是相当的熟悉的,所以看这部分还是比较快的。接下来就。。。whatever,首先要把书看完,其次要认真地看。恩。Come on, baby!