抽象工厂模式

factory

package com.wayne.factory;

import com.wayne.pojo.Food;
import com.wayne.pojo.Vichel;
import com.wayne.pojo.Weapon;

public interface IFactory {
	Vichel createVichel();
	
	Weapon createWeapon();
	
	Food createFood();
}
package com.wayne.factory;

import com.wayne.pojo.AK47;
import com.wayne.pojo.Broom;
import com.wayne.pojo.Food;
import com.wayne.pojo.Mushroom;
import com.wayne.pojo.Vichel;
import com.wayne.pojo.Weapon;

public class MagicFactory implements IFactory {

	@Override
	public Vichel createVichel() {
		return new Broom();
	}

	@Override
	public Weapon createWeapon() {
		return new AK47();
	}

	@Override
	public Food createFood() {
		return new Mushroom();
	}

}

pojo

package com.wayne.pojo;

public interface Vichel {
	void run();
}
package com.wayne.pojo;

public interface Weapon {
	void shoot();
}
package com.wayne.pojo;

public interface Food {
	void eat();
}


package com.wayne.pojo;

public class Broom implements Vichel {

	@Override
	public void run() {
		System.out.println("flying.....");
	}

}
package com.wayne.pojo;

public class AK47 implements Weapon {

	@Override
	public void shoot() {
		System.out.println("AK47 shoot.....");
	}

}
package com.wayne.pojo;

public class Mushroom implements Food {

	@Override
	public void eat() {
		System.out.println("mushroom ......");
	}


}

test

package com.wayne.test;

import com.wayne.factory.IFactory;
import com.wayne.factory.MagicFactory;
import com.wayne.pojo.Food;
import com.wayne.pojo.Vichel;
import com.wayne.pojo.Weapon;


public class MyTest {

	public static void main(String[] args) {
		IFactory f = new MagicFactory();
		
		Vichel v = f.createVichel();
		v.run();
		
		Food food = f.createFood();
		food.eat();
		
		Weapon weapon = f.createWeapon();
		weapon.shoot();
	}

}








评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值