直接上代码:

抽象农场 Farm.java
package com.xingsfdz.abstractfactory;
/**
 * 
 * @类名称 Farm.java
 * @类描述 <pre>农场抽象接口</pre>
 * @作者  
 * @创建时间 2019年5月4日 下午11:07:31
 * @版本 1.00
 *
 * @修改记录
 * <pre>
 *     版本                       修改人 		修改日期 		 修改内容描述
 *     ----------------------------------------------
 *     1.00 	xingsfdz 	2019年5月4日             
 *     ----------------------------------------------
 * </pre>
 */
public interface Farm {
    public Animal newAnimal();//动物工厂生产动物
    public Plant newPlant();//植物工厂生产植物
}具体的农场实现,渝北农场:YBFarm.java
package com.xingsfdz.abstractfactory;
/**
 * 
 * @类名称 YBFarm.java
 * @类描述 <pre>具体农场:渝北农场养殖牛与种植水果</pre>
 * @作者  
 * @创建时间 2019年5月4日 下午11:16:03
 * @版本 1.00
 *
 * @修改记录
 * <pre>
 *     版本                       修改人 		修改日期 		 修改内容描述
 *     ----------------------------------------------
 *     1.00 	xingsfdz 	2019年5月4日             
 *     ----------------------------------------------
 * </pre>
 */
public class YBFarm implements Farm {
	@Override
	public Animal newAnimal() {
		return new Cattle();//具体生产牛的渝北农场
	}
	@Override
	public Plant newPlant() {
		return new Fruitage();//具体生水果的渝北农场
	}
}具体的农场实现,渝中农场:YZFarm.java
package com.xingsfdz.abstractfactory;
/**
 * 
 * @类名称 YZFarm.java
 * @类描述 <pre>具体农场:渝中农场 养殖马与种植蔬菜</pre>
 * @作者 
 * @创建时间 2019年5月4日 下午11:16:45
 * @版本 1.00
 *
 * @修改记录
 * <pre>
 *     版本                       修改人 		修改日期 		 修改内容描述
 *     ----------------------------------------------
 *     1.00 	xingsfdz 	2019年5月4日             
 *     ----------------------------------------------
 * </pre>
 */
public class YZFarm implements Farm {
	@Override
	public Animal newAnimal() {
		return new Horse();//具体生产马的渝中农场
	}
	@Override
	public Plant newPlant() {
		return new Vegetables();//具体生产蔬菜的渝中农场
	}
}抽象的动物工厂:Animal.java
package com.xingsfdz.abstractfactory;
/**
 * 
 * @类名称 Animal.java
 * @类描述 <pre>抽象产品:动物抽象接口</pre>
 * @作者  
 * @创建时间 2019年5月4日 下午11:08:47
 * @版本 1.00
 *
 * @修改记录
 * <pre>
 *     版本                       修改人 		修改日期 		 修改内容描述
 *     ----------------------------------------------
 *     1.00 	xingsfdz 	2019年5月4日             
 *     ----------------------------------------------
 * </pre>
 */
public interface Animal {
	public void production();//生产
}抽象的植物工厂:Plant.java
package com.xingsfdz.abstractfactory;
/**
 * 
 * @类名称 Plant.java
 * @类描述 <pre>抽象产品:植物抽象接口</pre>
 * @作者  
 * @创建时间 2019年5月4日 下午11:09:05
 * @版本 1.00
 *
 * @修改记录
 * <pre>
 *     版本                       修改人 		修改日期 		 修改内容描述
 *     ----------------------------------------------
 *     1.00 	xingsfdz 	2019年5月4日             
 *     ----------------------------------------------
 * </pre>
 */
public interface Plant {
	public void production();//生产
}具体的动物产品牛类
package com.xingsfdz.abstractfactory;
/**
 * 
 * @类名称 Cattle.java
 * @类描述 <pre>具体产品:牛类</pre>
 * @作者 
 * @创建时间 2019年5月4日 下午11:10:51
 * @版本 1.00
 *
 * @修改记录
 * <pre>
 *     版本                       修改人 		修改日期 		 修改内容描述
 *     ----------------------------------------------
 *     1.00 	xingsfdz 	2019年5月4日             
 *     ----------------------------------------------
 * </pre>
 */
public class Cattle implements Animal{
	@Override
	public void production() {
		System.out.println("生产牛。。。");
	}
}马类:
package com.xingsfdz.abstractfactory;
/**
 * 
 * @类名称 Horse.java
 * @类描述 <pre>具体产品:马</pre>
 * @作者 
 * @创建时间 2019年5月4日 下午11:12:05
 * @版本 1.00
 *
 * @修改记录
 * <pre>
 *     版本                       修改人 		修改日期 		 修改内容描述
 *     ----------------------------------------------
 *     1.00 	xingsfdz 	2019年5月4日             
 *     ----------------------------------------------
 * </pre>
 */
public class Horse implements Animal{
	@Override
	public void production() {
		System.out.println("生产马...");
	}
}
具体的植物产品:水果
package com.xingsfdz.abstractfactory;
/**
 * 
 * @类名称 Fruitage.java
 * @类描述 <pre>具体植物产品:水果</pre>
 * @作者  
 * @创建时间 2019年5月4日 下午11:13:10
 * @版本 1.00
 *
 * @修改记录
 * <pre>
 *     版本                       修改人 		修改日期 		 修改内容描述
 *     ----------------------------------------------
 *     1.00 	xingsfdz 	2019年5月4日             
 *     ----------------------------------------------
 * </pre>
 */
public class Fruitage implements Plant {
	@Override
	public void production() {
		System.out.println("生产水果...");
	}
}蔬菜:
package com.xingsfdz.abstractfactory;
/**
 * 
 * @类名称 Vegetables.java
 * @类描述 <pre>具体植物产品:蔬菜</pre>
 * @作者
 * @创建时间 2019年5月4日 下午11:14:45
 * @版本 1.00
 *
 * @修改记录
 * <pre>
 *     版本                       修改人 		修改日期 		 修改内容描述
 *     ----------------------------------------------
 *     1.00 	xingsfdz 	2019年5月4日             
 *     ----------------------------------------------
 * </pre>
 */
public class Vegetables implements Plant {
	@Override
	public void production() {
		System.out.println("生产蔬菜...");
	}
}










