您的位置:首页 > 其它

设计模式之抽象工厂模式

2015-11-04 15:49 337 查看
package TestDesignPattern;
/**
* 抽象工厂模式
* 抽象工厂模式提供了一种方式,可以将一组具有同一主题的单独的工厂封装起来。
* 抽象工厂模式的用法:产品分为几个系列,在每个系列中,产品的布局都是类似的,在一个系列中某个位置的产品,在另一个系列中一定有一个对应的产品。
* 这样的产品结构是存在的,这几个系列中同一位置的产品可能是互斥的,它们是针对不同客户的解决方案,每个客户都只选择其一。
* 工厂方法模式、抽象工厂模式最大的区别在于:
* 工厂方法模式:针对的是 一个产品等级结构。
* 抽象工厂模式:针对 多个产品等级结构。
*/
//抽象工厂--两个工厂
interface KitchenFactory{
public Food getFood();//食品工厂
public TableWare getTableWare();//餐具工厂
}
//抽象的食物
interface Food{
public String getFoodName();
}
//抽象的餐具
interface TableWare{
public String getToolName();
}
//具体工厂
class AKitchen implements KitchenFactory{
@Override
public Food getFood() {
return new Apple();
}
@Override
public 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);
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: