程序的UML图:
程序的代码:
public interface IFoodFactory { public Burger MakeBurger(); public Chicken MakeChicken(); public Drink MakeDrink(); } //先创建一个食品工厂接口IFoodFactory
public interface IFood { public abstract void Make(); } //由于两家店都有汉堡、炸鸡和饮料,因此创建一个食品接口IFood,里面有做食物的方法
abstract class Burger implements IFood { public void Make() { } } //设置各个食物的接口 汉堡Burger的IFood食物接口
abstract class Chicken implements IFood { public void Make() { } } //炸鸡Chicken的IFood食物接口
abstract class Drink implements IFood { public void Make() { } } //饮料Drink的IFood食物接口
public class KFCBurger extends Burger { public void Make() { System.out.println("This is KFC‘s Burger!"); } } public class McDonaldBurger extends Burger { public void Make() { System.out.println("This is McDonal‘s Burger!"); } } //继承Burger来生产肯德基和麦当劳的汉堡
public class KFCChicken extends Chicken { public void Make() { System.out.println("This is KFC‘s Chicken!"); } } public class McDonaldChicken extends Chicken { public void Make() { System.out.println("This is McDonald‘s Chicken!"); } } //继承Chicken来生产肯德基和麦当劳的炸鸡
public class KFCDrink extends Drink { public void Make() { System.out.println("This is KFC‘s Drink!"); } } public class McDonaldDrink extends Drink { public void Make() { System.out.println("This is McDonald‘s Drink!"); } } //继承Drink来生产肯德基和麦当劳的饮料
public class KFCFactory implements IFoodFactory { public Burger MakeBurger() { return new KFCBurger(); } public Chicken MakeChicken() { return new KFCChicken(); } public Drink MakeDrink() { return new KFCDrink(); } } // KFC实现食品工厂的接口
public class McDonaldFactory implements IFoodFactory { public McDonaldBurger MakeBurger() { return new McDonaldBurger(); } public McDonaldChicken MakeChicken() { return new McDonaldChicken(); } public McDonaldDrink MakeDrink() { return new McDonaldDrink(); } } // McDonald‘s实现食品工厂的接口
主函数Main分别创建KFC和McDonald‘s的实例,制作各自的汉堡、炸鸡、饮料:
原文:http://www.cnblogs.com/fanghaibin/p/5090411.html