FactoryClass与普通Java类的比较

FactoryClass与普通Java类的比较,java,class,factory,Java,Class,Factory,工厂类类似于一个DriverManager.getConnection(“…conn…”)。它们是类的类方法 现在,它们与java.lang.util 我所说的普通类的意思是,它的实例创建如下 Date d=new Date(); 那么,与上面提到的(日期类)相比,工厂类是什么呢?它们是“普通”类,但它们遵循工厂方法模式 factory模式用于: 在不向客户机公开实例化逻辑的情况下创建对象 通过公共接口引用新创建的对象 发件人: 下面是一个如何用java实现的示例 package des

工厂类类似于一个
DriverManager.getConnection(“…conn…”)
。它们是类的类方法

现在,它们与
java.lang.util

我所说的普通类的意思是,它的实例创建如下

Date d=new Date();
那么,与上面提到的(日期类)相比,工厂类是什么呢?

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

factory模式用于:

  • 在不向客户机公开实例化逻辑的情况下创建对象
  • 通过公共接口引用新创建的对象
发件人:

下面是一个如何用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;
    }
}

完整示例:

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

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


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

很难知道这里有什么问题。问题是什么(没有问号很难确定)?“正常”是什么意思?工厂课程是正常的。事实上,
java.lang.util
中有工厂类(如
集合
类)。工厂是一种设计模式,工厂类实现了该设计模式。