友情链接:
设计模式之简单工厂模式/静态工厂模式
设计模式之工厂方法模式
设计模式之建造者模式
----------------------------------
设计模式之抽象工厂模式
import com.enjoy.entity.Bag;
import com.enjoy.entity.Fruit;
/**
* 抽象水果工厂
*/
public abstract class AbstractFactory {
public abstract Fruit getFruit();
public abstract Bag getBag();
}
苹果-水果工厂
import com.enjoy.entity.Bag;
import com.enjoy.entity.Fruit;
import com.enjoy.entity.bag.AppleBag;
import com.enjoy.entity.fruit.Apple;
/**
* 苹果-水果工厂
*/
public class AppleFactory extends AbstractFactory {
@Override
public Fruit getFruit() {
return new Apple();
}
@Override
public Bag getBag() {
return new AppleBag();
}
}
香蕉-水果工厂
import com.enjoy.entity.Bag;
import com.enjoy.entity.Fruit;
import com.enjoy.entity.bag.BananaBag;
import com.enjoy.entity.fruit.Banana;
/**
* 香蕉-水果工厂
*/
public class BananaFactory extends AbstractFactory {
@Override
public Fruit getFruit() {
return new Banana();
}
@Override
public Bag getBag() {
return new BananaBag();
}
}
抽象工厂模式客户端
import com.enjoy.entity.Bag;
import com.enjoy.entity.Fruit;
/**
* 抽象工厂模式测试
*/
public class OrderSendClient {
public static void main(String[] args) {
sendFruit();
}
public static void sendFruit() {
// 初始化工厂
AbstractFactory factory = new AppleFactory();// spring使用注入方式
// 得到水果
Fruit fruit = factory.getFruit();
fruit.draw();
// 得到包装
Bag bag = factory.getBag();
bag.pack();
}
}