创建对象的三种方式

1直接创建对象
2通过静态工厂创建
3通过动态工厂创建

1直接创建对象

package beans;

import java.util.Date;
public class TestFactory {

    public static void main(String[] args) {
        //直接创建对象(编译阶段确定-静态过程)
        Date date=new Date();
        System.out.println(date);
    }

}

2通过静态工厂创建

package beans;

import java.util.Date;
class DateUtils{
    /**
     * 通过类中的静态工厂方法创建一个对象
     * 设计要求要有Date类型,才能创建Date类型的对象
     * 这种工厂是静态的
     * @return
     */
    public static Date getInstance(){
        return new Date();
    }
}
public class TestFactory {

    public static void main(String[] args) {
        //通过静态工厂创建
        Date date2 = DateUtils.getInstance();
        System.out.println(date2);
    }

}

3通过动态工厂创建

 /**
          * 通过动态工厂{对象也不知道要创建什么对象,需要根据
          * 配置信息(在程序中对数据进行描述,对类进行描述所用到的基于xml
          * 和注解的配置)与反射创建对象}创建对象
          */
        //1.创建工厂对象,并基于工厂对象读取配置文件
        ApplicationContext ctx=new ApplicationContext("beans.xml");
        //2.通过工厂对象获取我们的对象
        Date date3=(Date) ctx.getBean("date1");
        //3.使用对象
        System.out.println(date3);
        //4.关闭工厂对象,释放资源
        ctx.close();

你可能感兴趣的:(创建对象的三种方式)