抽象工程模式设计与实现

抽象工厂模式设计与实现

1. (手杖,长袍) (AK47,军装)

实验代码:


package gsg.g1;
//AK47
public class AK47Product implements WeaponProduct{
   
	String nameProduct;
	public String getNameProduct() {
   
		return nameProduct;
	}
	public void setNameProduct(String nameProduct) {
   
		this.nameProduct = nameProduct;
	}
	@Override
	public void buy() {
   
		System.out.println("买一个AK47");
	}
	
}
package gsg.g1;

public class AncientFactory implements Factory{
   

	@Override
	public ClothProduct creatProduct() {
   
		return new UniformProduct();
	}
	@Override
	public WeaponProduct weaponProduct() {
   
		return new AK47Product();
	}
}
package gsg.g1;
//衣服类
public interface ClothProduct {
   
	public abstract void buy();
}
package gsg.g1;
public class Customer {
   
	public static void main(String[] args) {
   
		Factory factory1;
		factory1 = new AncientFactory();
		ClothProduct clothProduct;
		WeaponProduct weaponProduct;
		clothProduct = factory1.creatProduct();
		clothProduct.buy();
		weaponProduct = factory1.weaponProduct();
		weaponProduct.buy();
	}
}
package gsg.g1;
public class Customer2 {
   
public static void main(String[] args) {
   
	Factory factory2;
	ClothProduct clothProduct;
	WeaponProduct weaponProduct;
	factory2 = new ModernFactory();
	clothProduct = factory2.creatProduct();
	clothProduct.buy();
	weaponProduct = factory2.weaponProduct();
	weaponProduct.buy();
}
}
package gsg.g1;
public interface Factory {
   
	public ClothProduct creatProduct();
	public WeaponProduct weaponProduct();
	
}
package gsg.g1;

public class ModernFactory implements Factory{
   
	//衣服
	@Override
	public ClothProduct creatProduct() {
   
		return new RobesProduct();
	}
	//武器
	@Override
	public WeaponProduct weaponProduct() {
   
		return  new  WalkStickProduct();
	}
}
package gsg.g1;
//长袍
public class RobesProduct implements ClothProduct{
   
	String nameProduct;

	public String getNameProduct() {
   
		return nameProduct;
	}
	public void setNameProduct(String nameProduct) {
   
		this.nameProduct = nameProduct;
	}
	@Override
	public void buy() {
   
		System.out.println("买一个长袍");
	}
	
}

package gsg.g1;
//军装
public class UniformProduct implements ClothProduct{
   
	String nameProduct;

	public String getNameProduct() {
   
		return nameProduct;
	}
	public void setNameProduct(String nameProduct) {
   
		this.nameProduct = nameProduct;
	}
	@Override
	public void buy() {
   
		System
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Yet again

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值