设计模式之抽象工厂模式

来源:互联网 发布:手机应用数据能删除吗 编辑:程序博客网 时间:2024/05/08 10:59
package TestDesignPattern;/** * 抽象工厂模式 * 抽象工厂模式提供了一种方式,可以将一组具有同一主题的单独的工厂封装起来。 * 抽象工厂模式的用法:产品分为几个系列,在每个系列中,产品的布局都是类似的,在一个系列中某个位置的产品,在另一个系列中一定有一个对应的产品。 * 这样的产品结构是存在的,这几个系列中同一位置的产品可能是互斥的,它们是针对不同客户的解决方案,每个客户都只选择其一。 * 工厂方法模式、抽象工厂模式最大的区别在于: * 工厂方法模式:针对的是 一个产品等级结构。 * 抽象工厂模式:针对 多个产品等级结构。 *///抽象工厂--两个工厂interface KitchenFactory{public Food getFood();//食品工厂public TableWare getTableWare();//餐具工厂}//抽象的食物interface Food{public String getFoodName();}//抽象的餐具interface TableWare{public String getToolName();}//具体工厂class AKitchen implements KitchenFactory{@Overridepublic Food getFood() {return new Apple();}@Overridepublic TableWare getTableWare() {return new Knife();}}//具体的食品class Apple implements Food{public String getFoodName(){return "apple";}}//具体的工具class Knife implements TableWare{public String getToolName(){return "knife";}}//吃货开吃public class abstractFactoryPattern {//一个吃货的样子public void eat(KitchenFactory kitchenFactory){System.out.println("A foodaholic is eating "+kitchenFactory.getFood().getFoodName()+" with "+kitchenFactory.getTableWare().getToolName()+".....");}public static void main(String[] args) {abstractFactoryPattern food=new abstractFactoryPattern();KitchenFactory kf=new AKitchen();food.eat(kf);}}

0 0
原创粉丝点击