抽象工厂模式在农场系统的实现 //两种抽象产品:水果、蔬菜 public interface Fruit { } public interface Veggie { } //四种具体产品:北方水果,热带水果,北方蔬菜,热带蔬菜 //Northern Fruit public class NorthernFruit implements Fruit { private String name; public NorthernFruit(String name) { } public String getName() { return name; } public void setName(String name) { this. name = name; } } //TropicalFruit public class TropicalFruit implements Fruit { private String name; public TropicalFruit(String name) { } public String getName() { return name; } public void setName(String name) { this. name = name; } } //NorthernVeggie public class NorthernVeggie implements Veggie { private String name; public NorthernVeggie(String name) { } public String getName() { return name; } public void setName(String name) { this. name = name; } } //TropicalVeggie public class TropicalVeggie implements Veggie { private String name; public TropicalVeggie(String name) { } public String getName() { return name; } public void setName(String name) { this. name = name; } } //抽象工厂角色 public interface Gardener { public Fruit createFruit(String name); public Veggie createVeggie(String name); } //具体工厂角色:北方工厂,热带角色 public class NorthernGardener implements Gardener { public Fruit createFruit(String name) { return new NorthernFruit(name); } public Veggie createVeggie(String name) { return new NorthernVeggie(name); } } public class TropicalGardener implements Gardener { public Fruit createFruit(String name) { return new TropicalFruit(name); } public Veggie createVeggie(String name) { return new TropicalVeggie(name); } } 这样客户端只需要创建具体工厂的实例,然后调用工厂对象的工厂方法就可以得到所需要的产品对象。