直接上代码:
抽象农场 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 {@Overridepublic Animal newAnimal() {return new Cattle();///具体生产牛的渝北农场}@Overridepublic 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 {@Overridepublic Animal newAnimal() {return new Horse();///具体生产马渝中农场}@Overridepublic 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{@Overridepublic 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{@Overridepublic 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 {@Overridepublic 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 {@Overridepublic void production() {System.out.println(”生产蔬菜...");}}