建造者模式一般都是创建一个产品,不仅要把产品创建出来,还要关心这个产品的组成细节,组成过程。从代码上看,建造者模式在建造产品时,这个产品有很多方法,建造者模式会根据这些相同方法但是不同执行顺序建造出不同组成细节的产品。
工厂模式也是创建一个产品,注重的是把这个产品创建出来就行,不关心产品的组成部分。从代码上看,工厂模式为一个方法,用这个方法直接生产出产品。
建造者为一个产品的不同组成的抽象,工厂为一个工厂的不同产品的抽象。而抽象工厂为一个工厂集合的不同工厂的抽象。
工厂模式:
有一个生产电脑的工厂,它能生产acer电脑,也能生产苹果电脑。如下:
typedef struct _Computer
{
int type;
void (*create_computer)(struct _Computer*);
}Computer;
就像上面说的,现在有acer电脑,那也有苹果电脑<