千锋教育-做有情怀、有良心、有品质的职业教育机构

手机站
千锋教育

千锋学习站 | 随时随地免费学

千锋教育

扫一扫进入千锋手机站

领取全套视频
千锋教育

关注千锋学习站小程序
随时随地免费学习课程

当前位置:首页  >  技术干货  > java简单工厂

java简单工厂

来源:千锋教育
发布人:zyh
时间: 2023-06-15 16:37:00 1686818220

  简单工厂模式(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简单工厂

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

声明:本站稿件版权均属千锋教育所有,未经许可不得擅自转载。
10年以上业内强师集结,手把手带你蜕变精英
请您保持通讯畅通,专属学习老师24小时内将与您1V1沟通
免费领取
今日已有369人领取成功
刘同学 138****2860 刚刚成功领取
王同学 131****2015 刚刚成功领取
张同学 133****4652 刚刚成功领取
李同学 135****8607 刚刚成功领取
杨同学 132****5667 刚刚成功领取
岳同学 134****6652 刚刚成功领取
梁同学 157****2950 刚刚成功领取
刘同学 189****1015 刚刚成功领取
张同学 155****4678 刚刚成功领取
邹同学 139****2907 刚刚成功领取
董同学 138****2867 刚刚成功领取
周同学 136****3602 刚刚成功领取
相关推荐HOT