意图:
1、Define an interface for creating an object,but let the clesses that implement the interface decide which class to instantiate.
2、The factory method lets a class defer instantiation to subclasses.
特点:
1、根据单一职责原则
2、专门的类用来实例化对象
3、工厂用来创建对象
package FactoryMethod;
public interface Factory {
Monster create(int i);
}
package FactoryMethod;
public class UItraman implements Monster{
@Override
public void show() {
System.out.println("奥特曼");
}
}
package FactoryMethod;
public class WhiteBoneDemon implements Monster{
@Override
public void show() {
System.out.println("白骨精");
}
}
package FactoryMethod;
public class FactoryMethod implements Factory{
@Override
public Monster create(int i) {
if(i==1){
return new UItraman;
}
else if(i==0){
return new WhiteBoneDemon;
}else{
return null;
}
}
}
package FactoryMethod;
public interface Monster {
public void show();
}