/** * 版权所有 2022 涂聚文有限公司 * 许可信息查看: * 描述: * 抽象工厂 Abstract Factory(Kit/ToolKit) * 历史版本: JDK 14.02 * 2022-09-12 创建者 geovindu * 2022-09-12 添加 Lambda * 2022-09-12 修改:date * 接口类 * 2022-09-12 修改者:Geovin Du * 生成API帮助文档的指令: *javadoc - -encoding Utf-8 -d apidoc Fruit.java * * */ package com.javapatterns.abstractfactory; /** * 水果 * @author geovindu * */ public interface Fruit { /** * * 生长 * */ void Grow(); /** * 收获 * */ void Harvest(); /** *种植 * */ void Plant(); }
/** * 版权所有 2022 涂聚文有限公司 * 许可信息查看: * 描述: * 抽象工厂 Abstract Factory(Kit/ToolKit) * 历史版本: JDK 14.02 * 2022-09-12 创建者 geovindu * 2022-09-12 添加 Lambda * 2022-09-12 修改:date * 接口类 * 2022-09-12 修改者:Geovin Du * 生成API帮助文档的指令: *javadoc - -encoding Utf-8 -d apidoc Veggie.java * * */ package com.javapatterns.abstractfactory; /** * 蔬菜 * @author geovindu * */ public interface Veggie { /** * * 生长 * */ void Grow(); /** * 收获 * */ void Harvest(); /** *种植 * */ void Plant(); /** * 浇水 * */ void Watering(); }
/** * 版权所有 2022 涂聚文有限公司 * 许可信息查看: * 描述: * 抽象工厂 Abstract Factory(Kit/ToolKit) * 历史版本: JDK 14.02 * 2022-09-12 创建者 geovindu * 2022-09-12 添加 Lambda * 2022-09-12 修改:date * 接口类 * 2022-09-12 修改者:Geovin Du * 生成API帮助文档的指令: *javadoc - -encoding Utf-8 -d apidoc Gardener.java * * */ package com.javapatterns.abstractfactory; /** * * 园丁 * @author geovindu * */ public interface Gardener { /** * 水果 * @param name * */ public Fruit createFruit(String name); /** * 蔬菜 * @param name * * */ public Veggie createVeggie(String name); }
/** * 版权所有 2022 涂聚文有限公司 * 许可信息查看: * 描述: * 抽象工厂 Abstract Factory(Kit/ToolKit) * 历史版本: JDK 14.02 * 2022-09-12 创建者 geovindu * 2022-09-12 添加 Lambda * 2022-09-12 修改:date * 接口类 * 2022-09-12 修改者:Geovin Du * 生成API帮助文档的指令: *javadoc - -encoding Utf-8 -d apidoc NorthernFruit.java * * */ package com.javapatterns.abstractfactory; /** * 北方水果 * @param * @author geovindu * * */ public class NorthernFruit implements Fruit{ private String name; /** * * */ public NorthernFruit(String name) { this.name=name; } /** * * */ public String getName() { return name; } /** * * */ public void setName(String name) { this.name = name; } private int treeAge; /** * * */ @Override public void Grow() { System.out.println("Northern Fruit is growing..."); } /** * * */ @Override public void Harvest() { System.out.println("Northern Fruit has been harvested."); } /** * * */ @Override public void Plant() { System.out.println("Northern Fruit has been planted."); } /** * * */ public int getTreeAge() { return treeAge; } /** * * */ public void setTreeAge(int treeAge) { this.treeAge = treeAge; } }
/** * 版权所有 2022 涂聚文有限公司 * 许可信息查看: * 描述: * 抽象工厂 Abstract Factory(Kit/ToolKit) * 历史版本: JDK 14.02 * 2022-09-12 创建者 geovindu * 2022-09-12 添加 Lambda * 2022-09-12 修改:date * 接口类 * 2022-09-12 修改者:Geovin Du * 生成API帮助文档的指令: *javadoc - -encoding Utf-8 -d apidoc NorthernVeggie.java * * */ package com.javapatterns.abstractfactory; /** * 北方蔬菜 * @author geovindu * */ public class NorthernVeggie implements Veggie { private String name; /** * * */ public NorthernVeggie(String name) { this.name=name; } /** * * */ public String getName() { return name; } /** * * */ public void setName(String name) { this.name = name; } /** * * */ @Override public void Grow() { System.out.println("Northern Veggie is growing..."); } /** * * */ @Override public void Harvest() { System.out.println("Northern Veggie has been harvested."); } /** * * */ @Override public void Plant() { System.out.println("Northern Veggie has been planted."); } /** * * */ @Override public void Watering() { System.out.println("Northern Veggie has been watering."); } }
/** * 版权所有 2022 涂聚文有限公司 * 许可信息查看: * 描述: * 抽象工厂 Abstract Factory(Kit/ToolKit) * 历史版本: JDK 14.02 * 2022-09-12 创建者 geovindu * 2022-09-12 添加 Lambda * 2022-09-12 修改:date * 接口类 * 2022-09-12 修改者:Geovin Du * 生成API帮助文档的指令: *javadoc - -encoding Utf-8 -d apidoc NorthernGardener.java * * */ package com.javapatterns.abstractfactory; /** * 北方水果园丁 * @author geovindu * @param * * */ public class NorthernGardener implements Gardener{ private String name; /** * * */ public NorthernGardener() { } /** * * */ public String getName() { return name; } /** * * */ public void setName(String name) { this.name = name; } /** * * */ public Fruit createFruit(String name) { return new NorthernFruit(name); } /** * * */ public Veggie createVeggie(String name) { return new NorthernVeggie(name); } }
/** * 版权所有 2022 涂聚文有限公司 * 许可信息查看: * 描述: * 抽象工厂 Abstract Factory(Kit/ToolKit) * 历史版本: JDK 14.02 * 2022-09-12 创建者 geovindu * 2022-09-12 添加 Lambda * 2022-09-12 修改:date * 接口类 * 2022-09-12 修改者:Geovin Du * 生成API帮助文档的指令: *javadoc - -encoding Utf-8 -d apidoc TropicalFruit.java * * */ package com.javapatterns.abstractfactory; /** * 热带水果 * @author geovindu * */ public class TropicalFruit implements Fruit{ private String name; /** * * */ public TropicalFruit(String name) { this.name=name; } /** * * */ public String getName() { return name; } /** * * */ public void setName(String name) { this.name = name; } private int treeAge; /** * * */ public void Grow() { System.out.println("Tropical Fruit is growing..."); } /** * * */ public void Harvest() { System.out.println("Tropical Fruit has been harvested."); } /** * * */ public void Plant() { System.out.println("Tropical Fruit has been planted."); } /** * * */ public int getTreeAge() { return treeAge; } /** * * */ public void setTreeAge(int treeAge) { this.treeAge = treeAge; } }
/** * 版权所有 2022 涂聚文有限公司 * 许可信息查看: * 描述: * 抽象工厂 Abstract Factory(Kit/ToolKit) * 历史版本: JDK 14.02 * 2022-09-12 创建者 geovindu * 2022-09-12 添加 Lambda * 2022-09-12 修改:date * 接口类 * 2022-09-12 修改者:Geovin Du * 生成API帮助文档的指令: *javadoc - -encoding Utf-8 -d apidoc TropicalVeggie.java * * */ package com.javapatterns.abstractfactory; /** * 热带蔬菜 * @author geovindu * **/ public class TropicalVeggie implements Veggie{ private String name; /** * * */ public TropicalVeggie(String name) { this.name=name; } /** * * */ public String getName() { return name; } /** * * */ public void setName(String name) { this.name = name; } /** * * */ @Override public void Grow() { System.out.println("Tropical Vigge is growing..."); } /** * * */ @Override public void Harvest() { System.out.println("Tropical Vigge has been harvested."); } /** * * */ @Override public void Plant() { System.out.println("Tropical Vigge has been planted."); } /** * * */ @Override public void Watering() { System.out.println("Tropical Vigge has been watering."); } }
/** * 版权所有 2022 涂聚文有限公司 * 许可信息查看: * 描述: * 抽象工厂 Abstract Factory(Kit/ToolKit) * 历史版本: JDK 14.02 * 2022-09-12 创建者 geovindu * 2022-09-12 添加 Lambda * 2022-09-12 修改:date * 接口类 * 2022-09-12 修改者:Geovin Du * 生成API帮助文档的指令: *javadoc - -encoding Utf-8 -d apidoc TropicalGardener.java * * */ package com.javapatterns.abstractfactory; /** * 热带园丁 * @author geovindu * */ public class TropicalGardener implements Gardener{ /** *水果 * @param name * */ public Fruit createFruit(String name) { return new TropicalFruit(name); } /** *蔬菜 * @param name * * */ public Veggie createVeggie(String name) { return new TropicalVeggie(name); } }
调用测试:
//抽象工厂 com.javapatterns.abstractfactory.NorthernGardener gardener=new NorthernGardener(); gardener.setName("geovindu"); com.javapatterns.abstractfactory.NorthernFruit fruit=(NorthernFruit)gardener.createFruit("苹果"); fruit.Harvest(); System.out.println("园丁管理员是:"+gardener.getName()+"种植的水果是:"+fruit.getName());
输出:
Northern Fruit has been harvested. 园丁管理员是:geovindu种植的水果是:苹果