抽象工厂实现坦克大战(java实现)

抽象工厂实现坦克大战java实现)

抽象工厂实现坦克大战c#实现)

抽象工厂实现坦克大战c++实现)

需求:坦克大战

创建两种坦克

坦克类型射程速度
b7070米时/70公里
b5050米时/70公里

class Function{
	public String mStr;
	Function(String str){
		mStr = str;
		exe();
	}
	public void exe() {
		System.out.println(mStr);
	}
};

// interface
interface IFun{
	void exe();
}
interface ISpecificationOfTank{
	int getSpecification();
}
//abstract
abstract class ConcreteFun implements IFun{
	public ConcreteFun(ISpecificationOfTank s) {
		mSpecificationOfTank = s;
	}
	protected ISpecificationOfTank mSpecificationOfTank;
}
class ConcreteSpecification implements ISpecificationOfTank{
	int mSpecification;
	public ConcreteSpecification(int value) {
		mSpecification = value;
	}
	public int getSpecification() {
		return mSpecification;
	}
}
// Concrete
class Shot extends ConcreteFun{
	public Shot(ISpecificationOfTank s) {
		super(s);
	}
	public void exe() {
		Function f = new Function("发射距离"+mSpecificationOfTank.getSpecification()+"米");
	}
}
class Run extends ConcreteFun{
	public Run(ISpecificationOfTank s) {
		super(s);
	}
	public void exe() {
		Function f = new Function("速度"+mSpecificationOfTank.getSpecification()+"公里");
	}
}
class Tank{
	Shot mShot;
	Run mRun;
	public Tank(Shot s,Run r) {
		mShot = s;
		mRun = r;
	}
	public void exe() {
		mShot.exe();
		mRun.exe();
	}
}
// AbstractFactory
interface IFactory{
	Shot createShot();
	Run createRun();
}
abstract class Factory implements IFactory{
	ISpecificationOfTank mSpecificationOfTank;
	public Shot createShot() {
		return new Shot(mSpecificationOfTank);
	}
	public Run createRun() {
		return new Run(mSpecificationOfTank);
	}
}
class B70Factory extends Factory{
	public B70Factory() {
		mSpecificationOfTank = new ConcreteSpecification(70);
	}
} 
class B50Factory extends Factory{
	public B50Factory() {
		mSpecificationOfTank = new ConcreteSpecification(50);
	}
}
public class Client {
	public static void main(String[] args) {
		System.out.println("hello worldff !");
		B70Factory f = new B70Factory();
		Tank t = new Tank(f.createShot(),f.createRun());
		t.exe();
	}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值