02工厂方法:我的工坊能造灭霸,你拿什么跟我斗

第一章:废柴觉醒
(地下武馆内,我被十个黑衣人围住)
「废物!就凭你这把破木剑?」为首的刀疤男甩出飞刀,刀锋劈断我手中木剑的瞬间——
我突然笑了。
「你以为我为什么叫『万能铁匠』?」我从背后掏出一把打火机,「看见这个纹路了吗?这是爷爷留下的…」

火焰升腾中,地面浮现出巨大的齿轮阵图。
在这里插入图片描述

第二章:暗黑工坊
(密室里,三台蒸汽轰鸣的巨型机床)
「选择吧!」我拍碎控制台,十七个金属面板同时弹开:

  • 🔪 钢铁屠宰场:生产冷兵器
  • 雷鸣工坊:制造电磁炮
  • 🧪 生化实验室:培育变异怪兽

刀疤男的瞳孔地震:「你根本不是人类!这是…」

第三章:首战告捷
(当第一个飞刀刺来时,我按下红色按钮)

// 客户端代码(我)
WeaponFactory factory = getFactory("Iron"); // 根据敌人类型选择工厂
Weapon weapon = factory.createWeapon();     // 动态创建武器
weapon.attack();                             // 击溃敌人

「叮!」
一把滴血的玄铁战斧贯穿刀疤男胸口,他还没反应过来,第二个飞刀已经被电磁网黏在空中。

第四章:狂暴生产
(屏幕显示倒计时:30秒后BOSS「暗影帝王」降临)
我疯狂敲击键盘:

public abstract class WeaponFactory {      // 抽象工厂
    public abstract Weapon createWeapon();
}

public class IronKnifeFactory extends WeaponFactory {  // 具体工厂1
    @Override
    public Weapon createWeapon() {
        return new IronKnife("屠龙斩");   // 具体产品
    }
}

public class MagicSwordFactory extends WeaponFactory {  // 具体工厂2
    @Override
    public Weapon createWeapon() {
        return new MagicSword("弑神锋");   // 具体产品
    }
}

「滴滴!检测到BOSS能量波动!」系统警报响起时,我已切换到「生化工厂」,培养皿中跳出三只狂暴狼蛛。

第五章:终极对决
(暗影帝王带着黑洞炮出现)
「你竟敢用…工厂方法?」BOSS的声音带着恐惧,「我的暗黑军团可以无限复制!」

我冷笑一声,启动所有工坊:

List<WeaponFactory> factories = Arrays.asList(
    new IronKnifeFactory(),
    new MagicSwordFactory(),
    new BioMonsterFactory()
);

// 同时生产海量武器
factories.forEach(factory -> {
    for(int i=0;i<1000;i++) {
        factory.createWeapon().attack();
    }
});

第六章:上帝模式
(漫天都是旋转的刀剑、跳跃的雷球、撕咬的巨兽)
BOSS的暗黑铠甲在绝对火力下崩解:「不…不可能!你怎么能同时生产这么多类型武器?」

我踩着满地零件走到他面前:
「因为工厂方法的核心是——把造东西的权力交给子类,而老子永远掌握选择权!

第七章:战后传承
(我坐在废墟上,给徒弟们讲解设计图)
「记住了!工厂方法不是流水线,而是…」
我画出架构图:

[客户端]  
   │  
   ▼  
[抽象工厂]  
   ├─→ [具体工厂A] → [产品A1]  
   ├─→ [具体工厂B] → [产品B1]  
   └─→ [具体工厂C] → [产品C1]  

「比如王者荣耀的英雄工厂、英雄联盟的皮肤工厂、甚至外卖平台的送餐工厂…」

** design pattern 总结**
工厂方法的核心是**“造儿不如养儿,养儿不如放手”**:
优点

  • 解耦产品与工厂,新增产品只需加工厂(开闭原则)
  • 支持并行生产,适合大规模制造
  • 代码结构清晰,易于维护

⚠️ 注意事项

  • 产品必须属于同一产品族(否则会乱套)
  • 避免滥用导致工厂爆炸式增长
  • 接口设计要足够抽象

适用场景

  • 游戏中的装备系统
  • 汽车制造的不同车型生产线
  • HTTP请求的多种处理器

一句话口诀
“想要随时换装备?先建好你的武器工厂!”


关注我,看更多关于设计模式的爽文~
顶级程序员都在偷偷看的书单!免费领50+本技术神作

关注公众号【苏师兄编程】,回复“书单”,即可领取上面书单

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值