抽象工厂相对于简单工厂来说多了几个要实现的接口
public interface FruitDemo {
void eat();
}
//加一个接口
public interface MeatDemo {
void eat();
}
//实现FruitDemo
public class EatFruit implements FruitDemo{
public void eat(){
System.out.print("eat Fruit!!");
}
}
//实现MeatDemo
public class EatMeat implements MeatDemo{
public void eat(){
System.out.print("eat meat!!");
}
}
public class EatMeat02 implements MeatDemo{
public void eat(){
System.out.print("eat meat02!!");
}
}
//创建一个工厂
public class IFruitFactory {
public static FruitDemo eatFruit(){
return new EatFruit();
}
public static MeatDemo eatMeat(){
return new EatMeat();
}
public static MeatDemo eatMeat02(){
return new EatMeat02();
}
}
public class Test {
public static void main(String args[]) {
IFruitFactory ift = new IFruitFactory();
ift.eatFruit().eat();
ift.eatMeat().eat();
ift.eatMeat02().eat();
}
}
如果存在着多个抽象类或者多个接口,并且分属各个等级结构中的实现类之间存在着一定的关联或者约束,则用抽象工厂