zoukankan      html  css  js  c++  java
  • 简单工厂模式(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();
    }

    }







  • 相关阅读:
    [NOI Online #3 提高组]
    Luogu P3491 [POI2009]SLW-Words
    AtCoder Grand Contest 043
    Luogu P5607 [Ynoi2013]无力回天NOI2017
    AtCoder Grand Contest 041
    Luogu P5070 [Ynoi2015]即便看不到未来
    BZOJ 4367: [IOI2014]holiday假期
    BZOJ 3571: [Hnoi2014]画框
    BZOJ 4456: [Zjoi2016]旅行者
    BZOJ 1111: [POI2007]四进制的天平Wag
  • 原文地址:https://www.cnblogs.com/xiaobo68688/p/2367792.html
Copyright © 2011-2022 走看看