简单工厂模式是最常用的工厂模式。一般由一个抽象基类(接口)和N个子类和工厂类组成。工厂类有一个静态的create方法,根据不同的属性选择生成不同的子类对象。
如以下代码
基类:
public class AbstractOS{
/**
*获取当前对象名字
*/
public abstract String getName();
}
子类windows:
public class Windows extends AbstractOS{
/**
*获取当前对象名字
*/
@override
public String getName(){
return "windows";
}
}
子类Linux:
public class Linux extends AbstractOS{
/**
*获取当前对象名字
*/
@override
public String getName(){
return "Linux";
}
}
工厂类:
public class OSFactory{
public static final String LINUX_NAME = "linux";
public static final String WINDOWS_NAME = "windows";
public static AbstractOS create(String name){
switch(name){
case LINUX_NAME:
return new Linux();
case WINDOWS_NAME:
return new Windows();
default:
return new Linux();
}
}
}
执行工厂方法:
AbstractOS os = OSFactory.create(OSFactory.WINDOWS_NAME);
os.getName();