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);
             
        }
     
    }
  • 相关阅读:
    MS SQL发生死锁以及tempdb的优化资源总结
    MS SQL SERVER 簡易取得資料表實體檔案大小
    jquery选择器(转载)
    [資源]RAID是什么意思?RAID的应用
    WIN2003下安裝PHP+MYSQL資源
    MS SQL 錯誤: 15457,重要性: 0,狀態: 1
    [轉]如何修改bootini文件的/pae/awe/3gb参数
    [資源]PHP防止SQL注入
    [收藏]CSS,JS控制Table的行顏色,以及邊框
    檢查php文件中是否含有bom的php文件
  • 原文地址:https://www.cnblogs.com/android-blogs/p/5632144.html
Copyright © 2011-2022 走看看