设计模式之抽象工厂模式
友情链接:
设计模式之简单工厂模式/静态工厂模式
设计模式之工厂方法模式
设计模式之建造者模式
----------------------------------
设计模式之抽象工厂模式
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(); }}