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();
    }

    }







  • 相关阅读:
    动态规划(最长公共序列,最长上升序列)
    滴滴笔试--算术转移(20190827)
    线段树和树状数组
    pair和list学习
    数据结构--树(建立、遍历)
    tmux常用命令与快捷键
    机器学习实战-逻辑回归
    字符流中第一个重复的字符
    机器学习实战-朴素贝叶斯
    Python第三方库
  • 原文地址:https://www.cnblogs.com/xiaobo68688/p/2367792.html
Copyright © 2011-2022 走看看