静态工厂,是一个工厂类,并且改类没有实现一个工厂接口或者抽象类。
中间采用了反射机制。
如下代码,是一个简单的静态工厂模式:
public class TestFactory {
public static void main(String[] args) {
//根据传入的参数来得道一个对象
Car c = CarFactory.getCarInstance("Benz");
if(c != null) {
c.run();
c.stop();
}
c = CarFactory.getCarInstance("Toyota");
if(c != null) {
c.run();
c.stop();
}
}
}
/*
* 工厂类,用户穿件不同的实现了Car借口的对象实例
*/
class CarFactory{
//把构造函数设为了private,不让产生静态工厂的实例
private CarFactory(){}
/**
* 静态的方法,负责创建对象实例,中间采用的是反射机制
* 返回一个显示了Car接口的对象
* 其中的参数name为要new的对象名称,new对象采用的是反射机制
*/
public static Car getCarInstance(String name) {
Car c = null;
if(name != null && !"".equals(name.trim())) {
try {
Class<?> car = Class.forName(name);
c = (Car) car.newInstance();
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (InstantiationException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
}
}
return c;
}
}
interface Car{
public void run();
public void stop();
}
class Benz implements Car{
public void run() {
System.out.println("Benz go .");
}
public void stop() {
System.out.println("Benz stop..");
}
}
class Ford implements Car{
public void run() {
System.out.println("Ford go .");
}
public void stop() {
System.out.println("Ford stop..");
}
}
class Toyota implements Car{
public void run() {
System.out.println("Toyota go .");
}
public void stop() {
System.out.println("Toyota stop..");
}
}
相关推荐
简单工厂模式是最简单的工厂模式实现,它提供一个静态方法或者类来创建对象,这个类通常被称为“工厂”。用户只需要知道具体的产品类型,而无需了解如何创建对象。简单工厂模式适用于产品种类较少且相对固定的情况...
简单工厂模式是一种静态工厂方法,它提供一个公共的工厂类来创建对象。这个工厂类根据传入的参数或者条件来决定创建哪种类型的实例。在简单工厂模式中,通常有一个中心工厂类,它负责知道如何创建各种产品。这种模式...
简单工厂模式是一种静态工厂方法,它提供一个公共的工厂类来创建对象。在C++中,这个工厂类通常包含一个静态方法,根据传入的参数或者条件决定创建哪个类的实例。这种模式的优点是客户端无需知道具体产品的类名,只...
简单工厂模式(Simple Factory Pattern)是一种静态工厂方法,它通过一个公共的工厂类来创建对象。这个工厂类通常包含一个或多个静态方法,用于根据输入参数创建不同类型的实例。这种模式的优点在于客户端代码无需...
从设计模式的类型上来说,简单工厂模式是属于创建型模式,又叫做静态工厂方法(Static Factory Method)模式,但不属于23种GOF设计模式之一。简单工厂模式是由一个工厂对象决定创建出哪一种产品类的实例。简单工厂...
工厂模式分为三种主要类型:简单工厂模式、普通工厂模式(也称为工厂方法模式)和抽象工厂模式。 1. **简单工厂模式**: - 简单工厂模式中,有一个中心工厂类,它负责根据输入条件(通常是一个参数)来创建具体的...
简单工厂模式是一种静态工厂方法,它创建一个具体的对象而无需暴露创建逻辑。在C#中,我们可以定义一个工厂类,该类包含一个静态方法,用于根据输入参数返回不同类型的实例。例如,一个形状工厂可以生成圆形、...
静态工厂模式也称为简单工厂模式,它是一种简单的工厂模式。这种模式涉及到三个角色:工厂类角色、抽象产品类角色和具体产品类角色。抽象产品类可以使用接口或者父类来描述产品对象的行为特征。具体产品类就是某一...
简单工厂模式是一种创建型设计模式,它提供一个静态工厂方法来创建对象,而不是使用new关键字。`simplefactory`文件可能包含一个简单的工厂类,它负责根据输入条件(如参数)返回相应类型的实例。这种模式将对象的...
MVC模式使得用户界面与数据逻辑分离,单例模式保证关键资源的唯一访问点,代理模式在访问对象前后增加额外的功能,工厂模式将对象创建与使用分离,简单工厂模式为对象创建提供一个简单便捷的接口。通过这些模式,...
简单工厂模式通常包含一个静态工厂方法,该方法根据传入的参数或者某种条件决定创建哪种产品。这种方式将对象的创建与使用分离,使得客户端代码只需知道产品的接口,无需关心具体实现。例如,在代码中可能会有一个名...
**简单工厂模式**是软件设计模式中的一种,属于创建型模式。在Java编程中,它是一种用于创建对象的简便方法,将对象的实例化过程封装到一个单独的工厂类中,使得客户端代码无需直接调用具体类的构造函数,而是通过...
工厂模式是一种常用的面向对象设计...在实际项目中,无论是简单的一般工厂模式还是静态工厂模式,都可以根据需求选择合适的方式来实现对象的创建。理解并熟练运用工厂模式,对于提升代码质量和可维护性具有重要意义。
1. **简单工厂模式**:这是最直观的形式,包含一个静态工厂方法,根据传入的参数决定返回哪个类的实例。这种模式简单易用,但不支持增加新的产品类型,因为静态方法不易扩展。 2. **工厂方法模式**:每个子类都有一...
工厂模式分为简单工厂模式、工厂方法模式和抽象工厂模式,根据具体需求选择合适的实现。 在这个项目中,单例模式可能被用来创建一个工厂类,这个工厂类负责生产特定类型的手机(或其他产品)。这样的设计可以确保在...
简单工厂模式是一种更为基础的工厂模式,它包含一个静态方法,用于根据输入参数返回一个具体的产品实例。相比抽象工厂模式,简单工厂模式通常处理的产品种类较少,而且产品之间的关系相对简单。在某些情况下,我们...
简单工厂模式是一种创建型设计模式,它提供了一个创建对象的接口,但允许子类决定实例化哪一个类。这种模式使得代码能够将实例化的责任封装起来,使得客户端代码无需关心具体的对象实现,只需要知道一个公共接口即可...
简单工厂模式的核心在于一个静态工厂方法,这个方法根据传入的参数返回一个具体的产品对象。 在给定的示例中,Sunny 软件公司正在开发一个图表库,该库需要支持柱状图、饼状图和折线图等多种图表类型。初始设计中,...
简单工厂模式是一种设计模式,属于创建型模式,它提供了一个创建对象的接口,但让子类决定实例化哪一个类。这种类型的设计模式属于类创建模式。在简单工厂模式中,我们创建一个工厂类,它根据传入的参数来返回一个...
简单工厂模式通过提供一个静态工厂类来创建对象,这个工厂类包含一个静态方法,该方法可以根据传入的参数返回不同类型的产品对象。这样暴发户只需要告诉司机“开车”,而无需指定具体的车型。 **UML 类图及代码示例...