JAVA:将反射技术应用于工厂模式(Factory)和单例模式(Singleton)的简单代码

反射技术大量用于Java设计模式和框架技术,最常见的设计模式就是工厂模式(Factory)和单例模式(Singleton)。

参考URL:

http://blog.csdn.net/xiaohai798/article/details/11640427

用接口来沟通不同程序的开发进度,不必等上游程序写好代码之后,再注入后面流程的程序员。且在实现上,可以用配置文件灵活变更,而不用重编译整个项目。

InterfaceTest.java:

interface InterfaceTest {
//基于接口规范
  public void getName();
}

Test1.java:

class Test1 implements InterfaceTest {
//不同程序员可以实现不同的重写功能
  public void getName() {
    System.out.println("test1");
  }
}

Test2.java:

class Test2 implements InterfaceTest {
  public void getName() {
    System.out.println("test2");
  }
}

Factory.java:

import java.io.FileInputStream;
import java.util.Properties;

class Factory {
  private static Properties pro = new Properties();
  static {
    try {
//通过配置文件来实现载入不同的类,实现不同的功能
      pro.load(new FileInputStream("file.txt"));
    } catch (Exception e) {
      e.printStackTrace();
    }
  }
 //保证单例 
  private static Factory factory = new Factory();
  private Factory() {}
  public static Factory getFactory() {
    return factory;
  }

  public InterfaceTest getInstance() {
    InterfaceTest interfaceTest = null;
    try {
//反映功能可灵活实例化不同的类,作框架是很灵活自由的啦
      String classInfo = pro.getProperty("test");
      Class c = Class.forName(classInfo);
      Object obj = c.newInstance();
      interfaceTest = (InterfaceTest)obj;
    } catch (Exception e) {
      e.printStackTrace();
    }
    return interfaceTest;
  }
}

FactoryTest.java:

public class FactoryTest {
  public static void main(String[] args) {
    System.out.println("~~~~~~~~~~~~~~~~");
    Factory factory = Factory.getFactory();
    System.out.println("!!!!!!!!!!!!!!!!!");
    InterfaceTest inter = factory.getInstance();
    System.out.println("@@@@@@@@@@@@@@@@@@");
    inter.getName();
    System.out.println("##################");
  }
}

 

时间: 2024-08-03 07:35:46

JAVA:将反射技术应用于工厂模式(Factory)和单例模式(Singleton)的简单代码的相关文章

菜鸟饼 能不能用java的工厂模式处理下面的问题。 求代码 和 注释

问题描述 菜鸟饼 能不能用java的工厂模式处理下面的问题. 求代码 和 注释 interface Animal{ public void say(); } class Mammal implements Animal{ public void say(){ System.out.println("哺乳动物"); } } class Reptiles implements Animal{ public void say(){ System.out.println("爬行动物&

设计模式(一)工厂模式Factory(创建型)

设计模式一 工厂模式Factory          在面向对象编程中, 最通常的方法是一个new操作符产生一个对象实例,new操作符就是用来构造对象实例的.但是在一些情况下, new操作符直接生成对象会带来一些问题.举例来说, 许多类型对象的创造需要一系列的步骤: 你可能需要计算或取得对象的初始设置; 选择生成哪个子对象实例; 或在生成你需要的对象之前必须先生成一些辅助功能的对象. 在这些情况,新对象的建立就是一个 "过程",不仅是一个操作,像一部大机器中的一个齿轮传动. 模式的问题

java设计模式---浅谈2种工厂模式和单例模式

1. 工厂模式  .比如有一个统一接口  A   ,这个A接口是一个标准  .如果有类  B  和 C   那么 BC必须实现A接口  . 我们在以往的 方法生成这种对象的时候   A  b=new  B() ;  A c=new C() ;这样的方式来的 .但是如果不同的类需要不同的初始化的时候我们如果全部放在构造方法完成那么 就严重破坏了 面向对象的概念 .   我们想要的就是一个工厂 Factory ,也就是一个代理  我们通过它的唯一接口来 产生不同类型的产品 .下面是一段代码 : 1.

Java设计模式(三—四)----工厂模式

Java设计模式 工厂模式 一.引言 二.分类 三.简单工厂模式 四.工厂方法模式 五.抽象工厂模式 六.和工厂方法模式区别 七.总结 工厂模式 在面向对象编程中, 最通常的方法是一个new操作符产生一个对象实例,new操作符就是用来构造对象实例的.但是在一些情况下, new操作符直接生成对象会带来一些问题.举例来说, 许多类型对象的创造需要一系列的步骤: 你可能需要计算或取得对象的初始设置; 选择生成哪个子对象实例; 或在生成你需要的对象之前必须先生成一些辅助功能的对象.在这些情况,新对象的建

工厂模式(factory pattern) 详解

工厂方法模式: 定义了一个创建对象的接口, 但由子类决定要实例化的类是哪一个. 工厂方法让类把实例化推迟到子类. 包括: 创建者父类(creator), 包含创建对象的方法(代替new具体的对象, 通过参数创建不同的对象), 和一些基本的方法; 具体创建者(concrete creator), 继承创建者父类, 实现创建对象的方法, 不同参数可以创建不同的对象; 产品类父类(product), 包含产品的基本使用方法, 被创建者父类(creator)的基本方法使用; 具体产品(concrete

JavaScript模式之工厂模式(Factory)应用介绍

工厂模式也是对象创建模式之一,它通常在类或类的静态方法中去实现.构造对象的一种方式是使用new操作符,但使用new时正是针对实现编程,会造成"耦合"问题,与具体的类关系紧密.导致代码更脆弱,缺乏弹性,在复杂逻辑的项目中建议是面向接口编程. 先看简单工厂模式 代码如下: Person(name, age) { var obj = {} obj.name = name obj.age = age return obj } var p1 = Person('jack', 25) var p2

JavaScript 模式之工厂模式(Factory)应用介绍_javascript技巧

工厂模式也是对象创建模式之一,它通常在类或类的静态方法中去实现.构造对象的一种方式是使用new操作符,但使用new时正是针对实现编程,会造成"耦合"问题,与具体的类关系紧密.导致代码更脆弱,缺乏弹性,在复杂逻辑的项目中建议是面向接口编程. 先看简单工厂模式 复制代码 代码如下: Person(name, age) { var obj = {} obj.name = name obj.age = age return obj } var p1 = Person('jack', 25) v

【java设计模式】之 工厂(Factory)模式

版权声明:尊重博主原创文章,转载请注明出处哦~http://blog.csdn.net/eson_15/article/details/51223124 目录(?)[+] 1.工厂模式的定义         工厂模式使用的频率非常高,我们在开发中总能见到它们的身影.其定义为:Define an interface for creating an object, but let subclasses decide which class to instantiate. Factory Method

《java与模式》----创建模式系列工厂模式、单态模式精讲

创建 创建模式-----Creation  Pattern 创建模式是对类实例化过程的抽象. 一些系统在创建对象的时候需要动态的决定怎样创建对象.创建哪些对象.以及如何组合,表示这些对象.创建模式描述了怎样构造和封装这些动态的决定. 创建模式又分类的创建模式和对象的创建模式. l         类的创建模式:类的创建模式使用继承关系,把类的创建延迟到子类,从而封装了客户端将得到哪些具体类的信息,并隐藏了这些类的实例是如何被创建的和放在一起的.. l         对象的创建模式:对象的创建模