Java设计模式之简单工厂模式(2)

本文深入解析了简单工厂模式的概念、特点及其在Java编程中的具体应用,包括如何通过工厂类生成不同产品的实例,以及如何遵循单一职责原则进行代码设计。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、概述  
简单工厂模式 (Simple Factory) ,又称静态工厂方法模式,是类的创建模式。简单工厂模式专门定义一个类来负责创建其他类的实例,被创建的实例通常都具有共同的父类
详细说明如下:
    一个具体工厂 通过条件语句创建多个产品,产品的创建逻辑集中与一个工厂类。
    客户端通过 传不同的参数给工厂,实现创建不同产品的目的
    增加新产品时,需要修改工厂类、增加产品类,不符合OCP原则

二、具体代码
Java代码 复制代码
  1. //生产产品的工厂类   
  2. public class ProductFactory{   
  3.   public static Product generateProduct(int which){ //这个方法是static的   
  4.   if (which==1)   
  5.     return new ProductA();   
  6.   else if (which==2)   
  7.     return new ProductB();   
  8.   }   
  9. }   
  10.   
  11. //抽象产品   
  12. public interface Product {   
  13.      .....   
  14. }   
  15.   
  16. //具体产品A   
  17. public ProductA implement Product {   
  18.      ProductA () {}   
  19. }   
  20.   
  21. //具体产品B   
  22. public ProductB implement Product {   
  23.      ProductB () {}   
  24. }   
  25.   
  26. //调用工厂方法   
  27. public Client {   
  28.      public method1() {   
  29.          ProductFactory.generateProduct(1);   
  30.      }   
  31. }  
//生产产品的工厂类
public class ProductFactory{
  public static Product generateProduct(int which){ //这个方法是static的
  if (which==1)
    return new ProductA();
  else if (which==2)
    return new ProductB();
  }
}

//抽象产品
public interface Product {
     .....
}

//具体产品A
public ProductA implement Product {
     ProductA () {}
}

//具体产品B
public ProductB implement Product {
     ProductB () {}
}

//调用工厂方法
public Client {
     public method1() {
         ProductFactory.generateProduct(1);
     }
}

 
Java代码 复制代码
  1. interface a{}   
  2.   
  3. class b implements a{};   
  4.   
  5. class c implements a{};   
  6.   
  7. //工厂类   
  8. public class factory{   
  9.      public static a createa(string name){   
  10.          class cls=class.forname(name);   
  11.          object obj=cls.getinstance();   
  12.          return (a)obj;   
  13.      }   
  14. }   
  15. //创建实例时   
  16. a b=factory.createa("b");   
  17. a  c=factory.createa("c"); 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值