标签:pac 需要 new inter turn 抽象工厂 create cto package
3. 抽象工厂模式抽象工厂是应对产品族概念的
上面的工厂方法, 一个工厂只能生产一种产品, 所有有了抽象工厂模式, 用来在一个具体的工厂中生产多个产品, 既然多了一个产品, 就需要新增也给产品的接口, 同样我们依然需要简单工厂中的产品.
package com.only.abstractfactory;
public interface Water {
void name();
}
矿泉水
package com.only.abstractfactory;
public class WaterA implements Water{
@Override
public void name() {
System.out.println("矿泉水");
}
}
苏打水
package com.only.abstractfactory;
public class WaterB implements Water{
@Override
public void name() {
System.out.println("苏打水");
}
}
package com.only.abstractfactory;
import com.only.simplefactory.Bottle;
abstract public class AbstractFactory {
abstract public Bottle createBottle();
abstract public Water createWater();
}
A工厂生产塑料瓶 和 矿泉水
package com.only.abstractfactory;
import com.only.simplefactory.Bottle;
import com.only.simplefactory.BottleA;
public class AbstractFactoryA extends AbstractFactory{
@Override
public Bottle createBottle() {
return new BottleA();
}
@Override
public Water createWater() {
return new WaterA();
}
}
B工厂生产玻璃瓶和苏打水
package com.only.abstractfactory;
import com.only.simplefactory.Bottle;
import com.only.simplefactory.BottleB;
public class AbstractFactoryB extends AbstractFactory{
@Override
public Bottle createBottle() {
return new BottleB();
}
@Override
public Water createWater() {
return new WaterB();
}
}
简单工厂: 使用一个工厂对象用来生产同一等级架构中的任意产品(不支持扩展增加产品)
工厂方法: 使用多个工厂对象用来生产同一等级结构中对应的固定产品. (支持扩展增加产品)
标签:pac 需要 new inter turn 抽象工厂 create cto package
原文地址:https://blog.51cto.com/14901322/2521155