/**
* 版权所有 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 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 Veggie is growing...");
}
/**
*
* */
@Override
public void Harvest()
{
System.out.println("Tropical Veggie has been harvested.");
}
/**
*
* */
@Override
public void Plant()
{
System.out.println("Tropical Veggie has been planted.");
}
/**
*
* */
@Override
public void Watering() {
System.out.println("Tropical 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 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());