zoukankan      html  css  js  c++  java
  • 利用反射机制实现工厂设计模式的高扩展性

    直接看代码了:

    interface Fruit{    
    public void grow();
    public void eat();
    }
    class Apple implements Fruit{
    public void grow(){
    System.out.println("苹果在生长...");
    }
    public void eat(){
    System.out.println("吃苹果...");
    }
    }
    class Orange implements Fruit{
    public void grow(){
    System.out.println("橘子在生长...");
    }
    public void eat(){
    System.out.println("吃橘子...");
    }
    }
    class Banana implements Fruit{
    public void grow(){
    System.out.println("香蕉在生长...");
    }
    public void eat(){
    System.out.println("吃香蕉...");
    }
    }
    class Factory{
    public static Fruit getFruit(String className){
    Fruit f = null;
    try{
    f = (Fruit)Class.forName(className).newInstance();
    }catch (Exception e){}
    return f;
    }
    }
    public class Demo07{
    public static void main(String args[]){
    Fruit f = Factory.getFruit("Banana");
    f.grow();
    }
    }

      实际中是通过配置fruit.xml文件来保持包.类名称的此种代码是典型的配置与程序相分离,程序直接有配置文件有关。某一个部分的修改不影响其他程序。

    --------------------------------------------------------------------

    PS: 欢迎关注公众号"Devin说",会不定期更新Java相关技术知识。

    --------------------------------------------------------------------

  • 相关阅读:
    5773. 【NOIP2008模拟】简单数学题
    jzoj_5455. 【NOIP2017提高A组冲刺11.6】拆网线
    5461. 【NOIP2017提高A组冲刺11.8】购物
    博客第三天
    博客第二天
    博客的第一天。
    微服务架构下的session一致性
    分布式数据库数据一致性的原理、与技术实现方案
    epoll的本质
    DNS域名解析过程
  • 原文地址:https://www.cnblogs.com/devinzhang/p/2355995.html
Copyright © 2011-2022 走看看