架构学习之路(一)源码分析 2 简单工厂模式与工厂方法模式

本文深入探讨了设计模式中的简单工厂模式、工厂方法模式和抽象工厂模式,并通过具体实例展示了每种模式的应用方式及其优势。

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

架构学习之路(一)源码分析 1 设计模式与设计原则

  1. 常用的设计模式

    1. 简单工厂模式(Factory)

      特点穷举
      建型复杂工厂模式的思维模型。
      不属于23种设计模式之一。
      Spring 中的 BeanFactory,根据传入一个唯一的标识来获得 Bean 对象,但是否是在传入参数后创建还是传入参数前创建要根据具体情况来定。
      由一个工厂类根据传入的参数,动态决定应该创建哪一个产品类。
      解决产品与用户之间的问题。
      批量生产
      标准化
      public interface Milk {
      	public String getName();
      }
      
      public class Telunsu implements Milk {
      	
      	@Override
      	public String getName() {
      		return "特仑苏";
      	}
      }
      
      /**
       * 简单工厂模式
       **/
      public class SimpleFactory {
      	public Milk getMilk(String name){
      		return switch (name) {
      			case "蒙牛" -> new Mengniu();
      			default -> null;
      		};
      	}
      }
      
    2. 工厂方法模式(Factory Method)

      特点穷举
      建型对于调用者来说,隐藏了复杂的逻辑处理过程,调用者只关心执行结果。
      对于工厂来说要对结果负责,保证生产处符合规范的产品。
      将对象的创建和使用相分离,应用程序将对象的创建及初始化职责交给工厂对象。
      流水线生产
      /**
       * 工厂方法模式
       */
      public interface FuncFactory {
      	/**
      	 * 统一的产品出口
      	 * @return 产品
      	 */
      	Milk getMilk();
      }
      
      public class TelunsuFactory implements FuncFactory {
      	@Override
      	public Milk getMilk() {
      		return new Telunsu();
      	}
      }
      
      /**
       * 抽象工厂模式
       */
      public abstract class AbstractFactory {
      	public abstract Milk getTelunsu();
      }
      
      
      public class MilkFactory extends AbstractFactory {
      	@Override
      	public Milk getTelunsu() {
      		return new TelunsuFactory().getMilk();
      	}
      }
      
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值