工厂模式:普通工厂模式、工厂方法模式、抽象工厂模式

leeSmall博文

普通工厂模式、工厂方法模式、抽象工厂模式
普通工厂模式
工厂方法和抽象工厂方法

工厂方法模式: fa,fb,fc等具体工厂实现一个工厂接口IF, 分别负责生产a,,b,c等产品;
特点是: 一个工厂负责生产单种产品。
如果要求一个工厂生产多种产品呢?
工厂方法: 不同工厂生产同一等级结构的产品; 比如, 电视机: 包括海尔, TCL等。
抽象工厂方法: 同一工厂生产的不同等级结构的产品; 比如海尔工厂, 包括 海尔洗衣机、 海尔电视机、 海尔冰箱等, 他们都是同一个工厂, 不同等级结构的产品, 海尔洗衣机属于洗衣机等级结构的产品, 海尔电视机属于电视机等级结构的产品,海尔电冰箱属于冰箱等级结构的产品, 属于一个产品族。

当要求工厂生产位于不同等级结构的不同产品时,比如要求工厂家电,包括电视机、冰箱、洗衣机等不同等级结构的产品, 且电视机包括海尔和TCL等, 冰箱包括 海尔、TCL等, 洗衣机包括海尔、格力等; 则需要用抽象工厂结构。

工厂方法面对的是一个产品等级结构;抽象工厂面对的是多个产品等级结构。

抽象工厂、具体工厂、 抽象产品、 具体产品

其实就是个拆分和组合的思路。

抽象工厂方法

interface superFactory{
TV createTV();

Fridge createFridge();//冰箱
}

HaierFactory implement superFactory{// 海尔工厂
TV createTV(){
// 海尔tv
}

Fridge createFridge(){
// 海尔fridge
}
}

GeliFactory implement superFactory{ // 格力工厂
TV createTV(){
// 格力tv
}

Fridge createFridge(){
// 格力fridge
}
}

你可能感兴趣的:(工厂模式:普通工厂模式、工厂方法模式、抽象工厂模式)