public interface Gardener{}
public class NorthernGardener implements Gardener
{
public Fruit creatFruit(String name)
{
return new NorthernFruit(name);
}
public Veggie creatVeggie(String name)
{
return new NorthernVeggie(name);
}
}
public class TropicalGardener implements Gardener
{
public Fruit creatFruit(String name)
{
return new TropicalFruit(name);
}
public Veggie creatVeggie(String name)
{
return new TropicalVeggie(name);
}
}
public interface Veggie{} //蔬菜
public class NothernVeggie implements Veggie
{
private String name;
}
public class TropicalVeggie implements Veggie
{
private String name;
}
public interface Fruit{} //水果
public class NothernFruit implements Fruit
{
private String name;
}
public class TropicalFruit implements Fruit
{
private String name;
}
抽象工厂来源:button(UnixButton,WinButton),text(UnixText,WinText)两个等级结构。UnixButton和UnixText是Unix一族,由
UnixFactory创建,WinButton和WinText是Window一族,应该有WinFactory来创建。
需要增加一个产品族(如亚热带的水果和蔬菜),需要增加一个产品等级(肉类),考虑代码的变化。