工厂方法模式A
package 工厂方法模式;public interface Human {public void laugh();public void cry();public void talk();}//****************************************************************************package 工厂方法模式;public class WhiteHuman implements Human {public void laugh() {System.out.println("白种人笑了····");}public void cry() {System.out.println("白种人哭了····");}public void talk() {System.out.println("白种人在说话了····");}}//****************************************************************************package 工厂方法模式;public class BlackHuman implements Human {public void laugh() {System.out.println("黑种人笑了····");}public void cry() {System.out.println("黑种人哭了····");}public void talk() {System.out.println("黑种人在说话了····");}}//****************************************************************************package 工厂方法模式;public class YellowHuman implements Human {public void laugh() {System.out.println("黄种人笑了····");}public void cry() {System.out.println("黄种人哭了····");}public void talk() {System.out.println("黄种人在说话了····");}}//****************************************************************************package 工厂方法模式;public class HumanFactory {public static Human createHuman(Class c) throws InstantiationException, IllegalAccessException, ClassNotFoundException{Human human = null;human = (Human)Class.forName(c.getName()).newInstance();return human;}}//****************************************************************************package 工厂方法模式;public class NvWa {public static void main(String aegs[]) throws InstantiationException, IllegalAccessException, ClassNotFoundException{System.out.println("····造出的第一批人是这样的:白人····");Human whiteHuman = HumanFactory.createHuman(WhiteHuman.class);whiteHuman.cry();whiteHuman.laugh();whiteHuman.talk();System.out.println("····造出的第二批人是这样的:黑人····");Human BlackHuman = HumanFactory.createHuman(BlackHuman.class);BlackHuman.cry();BlackHuman.laugh();BlackHuman.talk();System.out.println("····造出的第三批人是这样的:黄种人····");Human YellowHuman = HumanFactory.createHuman(YellowHuman.class);YellowHuman.cry();YellowHuman.laugh();YellowHuman.talk();}}