FactoryClass与普通Java类

时间:2013-07-15 14:29:58

标签: java class factory

工厂类就像DriverManager.getConnection("...conn...")。它们是类

的类方法

现在,它们与java.lang.util

中的普通类有什么不同

通过普通类我的意思是,其实例的创建方式如下。

Date d=new Date();

那么什么是工厂类与上面提到的(日期类)相比?

2 个答案:

答案 0 :(得分:1)

它们是“普通”类,但它们遵循工厂方法模式

Factory example implementation

工厂模式用于:

  
      
  • 创建对象而不将实例化逻辑暴露给客户端。
  •   
  • 通过通用界面参考新创建的对象
  •   

来自:http://www.oodesign.com/factory-pattern.html

以下是如何在java中执行此操作的示例

package designPatterns.creational.factory;

public class CarFactory {
    public static Car buildCar(CarType model) {
        Car car = null;
        switch (model) {
            case SMALL:
                    car = new SmallCar();
                    break;

            case SEDAN:
                    car = new SedanCar();
                    break;

            case LUXURY:
                    car = new LuxuryCar();
                    break;

            default:
                    // throw some exception
                    break;
            }
        return car;
    }
}

完整示例:http://howtodoinjava.com/2012/10/23/implementing-factory-design-pattern-in-java/

答案 1 :(得分:1)

您所说的工厂方法称为设计模式。工厂方法是一种创建模式,可以防止构造函数的硬编码,并且可能是最常见的面向对象设计模式之一。这里要实现的关键是Factory模式设计一个用于创建对象的界面。它通过减少重复代码的数量来促进 DRY原则(不要重复自己)。

如果您的代码需要可移植,则需要避免在应用程序中使用硬编码构造函数调用。有时最好让子类决定实例化哪个类。

您问过Factory创建的对象和没有创建对象的对象之间的区别?它们都是静止对象,并且您在后台调用工厂方法的类正在创建一个对象并将其返回给您。有些对象非常复杂,使用预定义的接口创建对象更有意义。最后,有时不应向用户公开有关创建对象的信息。