zoukankan      html  css  js  c++  java
  • 使用反射来实现简单工厂模式

    1.建立配置文件pet.properties

     
    dog=demo04.Dog
    cat=demo04.Cat
    pig=demo04.Pig
     
    2.建立相关类 pet.java

    [代码]java代码:

    1
    2
    3
    4
    5
    6
    7
    8
    package demo04;
     
    public abstract class Pet {//抽象宠物类
     
    }
    class Dog extends Pet{}//Dog类
    class Cat extends Pet{}//Cat类
    class Pig extends Pet{}//Pig类
     
    3.建立宠物工厂类PetFactory.java
     

    [代码]java代码:

    01
    02
    03
    04
    05
    06
    07
    08
    09
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    package demo04;
     
    import java.io.FileInputStream;
    import java.io.FileNotFoundException;
    import java.io.IOException;
    import java.util.Properties;
     
    public class PetFactory {
        public static Pet getPet(String tag){
            Properties p=new Properties();//声明properties对象
            try {
                p.load(new FileInputStream("pet.properties"));//加载配置文件
            } catch (Exception e) {
                e.printStackTrace();
            }
            Pet pet=null;
            try {
                Class<!--?-->cla=Class.forName(p.getProperty(tag));//利用反射获取对象类
                 Object obj=cla.newInstance();//生成实例
                 pet=(Pet)obj;//强制类型转换
            } catch (Exception e) {
                e.printStackTrace();
            }
            return pet;
        }
    }
     
    4.测试类

    [代码]java代码:

    01
    02
    03
    04
    05
    06
    07
    08
    09
    10
    11
    12
    package demo04;
     
    public class Test {
     
        public static void main(String[] args) {
               
            Pet pet=PetFactory.getPet("dog");
            System.out.println(pet);
             
        }
     
    }
  • 相关阅读:
    v4L2编程
    我的c#开发之路
    JS 获取页面input控件 追加样式属性
    FileUpload控件应用
    C# Winform项目下实现左侧菜单右侧界面显示效果
    在DropDownList 控件绑定数据源中新增一条自定义数据
    在datatable数据中自定义增加一列
    java 实现字符串词频统计
    Hibernate3.x 中BLOB、CLOB 注解配置写法
    lucene 排序
  • 原文地址:https://www.cnblogs.com/android-blogs/p/5632144.html
Copyright © 2011-2022 走看看