当前位置: 首页 > 图灵资讯 > 技术篇> 设计模式之-抽象工厂

设计模式之-抽象工厂

来源:图灵教育
时间:2023-06-07 09:41:35

直接上代码:

设计模式之-抽象工厂_设计模式

抽象农场 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(”生产蔬菜...");}}