工厂类就像一个DriverManager.getConnection("...conn...")
. 它们是类的类方法
现在,它们与普通课程有何不同,例如java.lang.util
通过普通类,我的意思是,其实例的创建如下所示。
Date d=new Date();
那么与上面提到的(日期类)相比,工厂类是什么?
它们是“普通”类,但它们遵循工厂方法模式
工厂模式用于:
- 创建对象而不将实例化逻辑暴露给客户端。
- 通过通用接口引用新创建的对象
来自: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/
您所说的工厂方法称为设计模式。工厂方法是一种创建模式,可以防止对构造函数进行硬编码,并且可能是最常见的面向对象设计模式之一。这里要实现的关键是工厂模式设计了一个用于创建对象的接口。它通过减少重复代码的数量来促进DRY 原则(不要重复自己)。
如果您的代码需要可移植,您需要避免在应用程序中硬编码构造函数调用。有时最好让子类决定实例化哪个类。
你问过工厂创建的对象和没有工厂创建的对象之间的区别吗?它们仍然是对象,您在幕后调用工厂方法的类正在创建一个对象并将其返回给您。有些对象非常复杂,使用预定义的接口来创建对象更有意义。最后,有时不应向用户公开有关创建对象的信息。