全国旗舰校区

不同学习城市 同样授课品质

北京

深圳

上海

广州

郑州

大连

武汉

成都

西安

杭州

青岛

重庆

长沙

哈尔滨

南京

太原

沈阳

合肥

贵阳

济南

下一个校区
就在你家门口
+
当前位置:首页  >  技术干货

java简单工厂

发布时间:2023-06-15 16:37:00
发布人:zyh

  简单工厂模式(Simple Factory Pattern)是一种创建型设计模式,它提供了一个简单的工厂类,用于根据客户端的请求创建不同类型的对象。在Java中,简单工厂模式可以通过一个工厂类中的静态方法来创建对象。

  下面是一个简单工厂模式的示例:  

// 抽象产品类
interface Product {
void operation();
}

// 具体产品类 A
class ConcreteProductA implements Product {
@Override
public void operation() {
System.out.println("ConcreteProductA operation");
}
}

// 具体产品类 B
class ConcreteProductB implements Product {
@Override
public void operation() {
System.out.println("ConcreteProductB operation");
}
}

// 简单工厂类
class SimpleFactory {
public static Product createProduct(String type) {
if (type.equalsIgnoreCase("A")) {
return new ConcreteProductA();
} else if (type.equalsIgnoreCase("B")) {
return new ConcreteProductB();
}
throw new IllegalArgumentException("Invalid product type: " + type);
}
}

// 客户端代码
public class Client {
public static void main(String[] args) {
Product productA = SimpleFactory.createProduct("A");
productA.operation(); // Output: ConcreteProductA operation

Product productB = SimpleFactory.createProduct("B");
productB.operation(); // Output: ConcreteProductB operation
}
}

  在上面的示例中,我们定义了一个抽象产品接口 `Product`,以及两个具体产品类 `ConcreteProductA` 和 `ConcreteProductB`,它们都实现了 `Product` 接口。然后,我们创建了一个简单工厂类 `SimpleFactory`,其中的静态方法 `createProduct()` 根据客户端传入的类型参数来创建不同类型的产品对象。最后,在客户端代码中,我们通过简单工厂的静态方法来创建产品对象,并调用其操作方法。

java简单工厂

  简单工厂模式的优点是客户端不需要知道具体产品的实现细节,只需要与工厂类进行交互。这样可以降低了客户端与具体产品之间的耦合度,并提供了一种集中化创建对象的方式。但同时,如果需要添加新的产品类型,就需要修改工厂类的代码,违反了开闭原则。因此,简单工厂模式适用于产品类型相对稳定且不频繁变化的情况。

#java简单工厂

相关文章

矩阵的2范数与向量的2范数有什么关系?

矩阵的2范数与向量的2范数有什么关系?

2023-10-15
什么是逆强化学习?

什么是逆强化学习?

2023-10-15
什么是KPI?

什么是KPI?

2023-10-15
NAS是什么?

NAS是什么?

2023-10-15

最新文章

常见网络安全面试题:Windows常用的命令有哪些?

常见网络安全面试题:Windows常用的命令有哪些?

2023-10-09
常见网络安全面试题:根据设备告警如何展开排查?

常见网络安全面试题:根据设备告警如何展开排查?

2023-10-09
常见网络安全面试题:mysql加固呢?(数据库加固)

常见网络安全面试题:mysql加固呢?(数据库加固)

2023-10-09
常见网络安全面试题:windows和linux加固?(操作系统加固)

常见网络安全面试题:windows和linux加固?(操作系统加固)

2023-10-09
在线咨询 免费试学 教程领取