一、前言:
二、使用:
1、客户端调用:
//初始化工厂
AbstractFactory factory = new com.dotc.patterndemo.create.factory.abstractFacttory.AppleFactory();
//得到水果
Fruit fruit = factory.getFruit();
fruit.draw();
//得到包装
Bag bag = factory.getBag();
bag.pack();
2、抽象水果父类
/**
* 抽象水果工厂
*/
public abstract class AbstractFactory {
public abstract Fruit getFruit();
public abstract Bag getBag();
}
3、工厂实现类
1、苹果工厂
public class AppleFactory extends AbstractFactory {
@Override
public Fruit getFruit() {
return new Apple();
}
@Override
public Bag getBag() {
return new AppleBag();
}
}
2、橘子工厂
public class OrangeFactory extends AbstractFactory {
@Override
public Fruit getFruit() {
return new Orange("Peter",80);
}
@Override
public Bag getBag() {
return new OrangeBag();
}
}
3、香蕉工厂
public class BananaFactory extends AbstractFactory {
@Override
public Fruit getFruit() {
return new Banana();
}
@Override
public Bag getBag() {
return new BananaBag();
}
}