读书人

设计方式之工厂模式(女娲造人)

发布时间: 2012-10-26 10:30:59 作者: rapoo

设计模式之工厂模式(女娲造人)

package design.factory;public interface AbstractHumanFactory {public abstract <T extends Human> T createHuman(Class<T> c);}package design.factory;public class BlackHuman implements Human {public void getColor() {// TODO Auto-generated method stubSystem.out.println("黑色人种");}public void talk() {// TODO Auto-generated method stubSystem.out.println("非洲语");}}package design.factory;public class YellowHuman implements Human {public void getColor() {// TODO Auto-generated method stubSystem.out.println("黄色人种");}public void talk() {// TODO Auto-generated method stubSystem.out.println("中国话");}}package design.factory;public interface Human {public void getColor();public void talk();}package design.factory;public class HumanFactory implements AbstractHumanFactory {public <T extends Human> T createHuman(Class<T> c) {// TODO Auto-generated method stubHuman human = null;try{human = (Human)Class.forName(c.getName()).newInstance();}catch(Exception e){e.printStackTrace();}return (T)human;}}package design.factory;public class NvWa {public static void main(String[] args){AbstractHumanFactory yinyanglu = new HumanFactory();Human black = yinyanglu.createHuman(BlackHuman.class);black.getColor();black.talk();Human yellow = yinyanglu.createHuman(YellowHuman.class);yellow.getColor();yellow.talk();}}

优点:良好的封装行,代码结构清晰,扩展性好,屏蔽了产品类,是典型的解耦框架。
使用场景:1.所有需要生成对象的地方都可以使用,不过要考虑是否增加代码的复杂性。
2.需要灵活的,可扩展的框架时可以考虑。
3.可用在异构项目上.

读书人网 >软件开发

热点推荐