三年前初看GoF的设计模式时,对于抽象工厂和工厂方法模式的实现都要理解半天,更不用说对概念上的理解了。之后每次翻看此书都能有很多新的体会,像酒一样越品越醇。一次和同事聊到此时,突然才明白类创建型和对象创建型的区别。
GoF的模式中明确提出,抽象工厂是类创建型模式,工厂方法是对象创建型模式。在实际的使用过程中,常常根据实际情况用了上面的两种模式,一般较少区分类创建型模式和对象创建型模式。
先简单概括一下:
类创建型模式:只需要知道创建产品的类或类层次结构,就可以创建出相应的对象。调用者只需要看到创建对象的类,而不需要知道自己将会得到什么样的一个对象。在这里体现出了,调用者要知道创建对象的类。
对象创建型模式:调用者通过一个函数来创建对象,所以调用者必须知道自己将要得到什么样的对象,只要知道将要得到对象的特征就行了,将其传给工厂方法来获得要的对象。在这里体现出了,调用者要知道对象的特征。
未完待续。