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);
             
        }
     
    }
  • 相关阅读:
    c# WInform 自定义导航布局
    c# 关于DataTable
    Sql Server 表结构相关
    C# winform 文件管理
    c# SqlBulkCopy实现批量从数据集中把数据导入到数据库中
    C# winform 动态操作webService
    c# Winform实现发送邮件
    C# 网络编程 TcpListener
    1122考试T2
    1121考试总结
  • 原文地址:https://www.cnblogs.com/android-blogs/p/5632144.html
Copyright © 2011-2022 走看看