Simple Factory设计模式,隐藏实现细节,客户只需知道怎么用就OK,不用知道实现细节。
Demo:
有发钢琴音的音乐盒,发小提琴音的音乐盒。
音乐盒:
public interface IMusicBox {
String play();
}
钢琴音的音乐盒:
public class PianoBox implements IMusicBox {
/* (non-Javadoc)
* @see com.sean.designpattern.demo.music.IMusicBox#play()
*/
@Override
public String play() {
return "piano";
}
}
小提琴音的音乐盒:
public class ViolinBox implements IMusicBox {
/* (non-Javadoc)
* @see com.sean.designpattern.demo.music.IMusicBox#play()
*/
@Override
public String play() {
return "violin";
}
}
静态工厂:
public class MusicBoxFactory {
public static IMusicBox createMusicBox(String name) throws InstantiationException, IllegalAccessException, ClassNotFoundException {
return (IMusicBox) Class.forName(name).newInstance();
}
}