
/*
* 抽象产品角色
*/
public interface Skin {
public void desc();
}
/*
*抽象产品角色
*/
public interface Stuffing {
public void boided();
}
/*
* 抽象工厂角色
* 水饺要具备2种原料
*/
public interface BoiledDumpling {
/*
* 做饺子皮
*/
public Skin skinFacotry();
/*
* 饺子馅
*/
public Stuffing stuffingFactory();
}
public class EggSkin implements Skin {
public void desc() {
System.out.println("做好了鸡蛋饺子皮");
}
}
public class FlourSkin implements Skin {
public void desc() {
System.out.println("做好了面粉饺子皮");
}
}
public class PigStuff implements Stuffing {
public void boided() {
System.out.println("猪肉馅拌好了");
}
}
public class BeefStuff implements Stuffing {
public void boided() {
System.out.println("牛肉馅拌好了");
}
}
public class BeefFlourDumpling implements BoiledDumpling {
public Skin skinFacotry() {
return new FlourSkin();//鸡蛋皮
}
public Stuffing stuffingFactory() {
return new BeefStuff();
}
}
public class PigEggDumpling implements BoiledDumpling {
public Skin skinFacotry() {
return new EggSkin();//鸡蛋皮
}
public Stuffing stuffingFactory() {
return new PigStuff();
}
}
public class Client {
/**
* @param args
*/
public static void main(String[] args) {
BoiledDumpling dump = new BeefFlourDumpling();
Skin skin1 = dump.skinFacotry();
Stuffing stuff1 = dump.stuffingFactory();
skin1.desc();
stuff1.boided();
}
}
public class Factory {
private BoiledDumpling factory;
public Factory(BoiledDumpling factory){
this.factory = factory;
}
public void eat(){
factory.skinFacotry().desc();
factory.stuffingFactory().boided();
}
}
public class Client {
/**
* @param args
*/
public static void main(String[] args) {
BoiledDumpling dump1 = new PigEggDumpling();
Factory factory = new Factory(dump1);
factory.eat();
}
}
















