设计模式之工厂模式(女娲造人)
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();}}