下面的代码是稍微改进后的工厂模式
abstract class MoveAble{
public abstract void run();
}
abstract class Woopen{
public abstract void attack();
}
abstract class Food{
public abstract void eat();
}
interface AllFactory{
public MoveAble createM();
public Woopen createW();
public Food createF();
}
class Car extends MoveAble{
public void run(){
System.out.println("Car is runing");
}
}
class AK47 extends Woopen{
public void attack(){
System.out.println("da da da");
}
}
class Apple extends Food{
public void eat(){
System.out.println("Name");
}
}
class Broom extends MoveAble{
public void run(){
System.out.println("flaying ....");
}
}
class MagicStick extends Woopen{
public void attack(){
System.out.println("Bang ....");
}
}
class MashRoom extends Food{
public void eat(){
System.out.println("Ya you du !!!");
}
}
class DefaultFactory implements AllFactory{
public MoveAble createM(){
return new Car();
}
public Woopen createW(){
return new AK47();
}
public Apple createF(){
return new Apple();
}
}
class MagicFactory implements AllFactory{
public MoveAble createM(){
return new Broom();
}
public Woopen createW(){
return new MagicStick();
}
public Food createF(){
return new MashRoom();
}
}