设计模式之-抽象工厂

直接上代码:

抽象农场 Farm.java 

package com.xingsfdz.abstractfactory;

/**
 * 
 * @类名称 Farm.java
 * @类描述 <pre>农场抽象接口</pre>
 * @作者  xingsfdz xingsfdz@163.com
 * @创建时间 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>
 * @作者  xingsfdz xingsfdz@163.com
 * @创建时间 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>
 * @作者  xingsfdz xingsfdz@163.com
 * @创建时间 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>
 * @作者  xingsfdz xingsfdz@163.com
 * @创建时间 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>
 * @作者  xingsfdz xingsfdz@163.com
 * @创建时间 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>
 * @作者  xingsfdz xingsfdz@163.com
 * @创建时间 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>
 * @作者  xingsfdz xingsfdz@163.com
 * @创建时间 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>
 * @作者  xingsfdz xingsfdz@163.com
 * @创建时间 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>
 * @作者  xingsfdz xingsfdz@163.com
 * @创建时间 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("生产蔬菜...");
	}

}

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值