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();
}
}