简单工厂模式(Factory Pattern)

public interface Human 
{
public void getColor();
public void talk();
}
public class BlackHuman implements Human 
{

@Override
public void getColor()
{
System.out.println("黑色");
}

@Override
public void talk()
{
System.out.println("黑人");
}

}
public class WhiteHuman implements Human 
{

@Override
public void getColor()
{
System.out.println("白色");
}

@Override
public void talk()
{
System.out.println("白人");
}

}
public class YelloHuman implements Human 
{

@Override
public void getColor()
{
System.out.println("黄色");
}

@Override
public void talk()
{
System.out.println("黄种人");
}

}
public class HumanFactory {

public static <T extends Human> T createHuman(Class<T> c) {

Human human = null;

try {
human = (Human) Class.forName(c.getName()).newInstance();
} catch (InstantiationException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
}

return (T) human;
}
}
public class NvWa {

/**
*
@param args
*/
public static void main(String[] args) {

Human white = HumanFactory.createHuman(WhiteHuman.class);
white.getColor();
white.talk();

Human black = HumanFactory.createHuman(BlackHuman.class);
black.getColor();
black.talk();

Human yellow = HumanFactory.createHuman(YelloHuman.class);
yellow.getColor();
yellow.talk();
}

}







posted @ 2012-02-25 14:58  LiLiNiuNiu  阅读(333)  评论(0编辑  收藏  举报