当前位置: 首页 > article >正文

java设计模式之工厂模式《铸剑风云录》

【卷一】初承家业:铸剑困局

「看剑!」​
独孤小黄凌空踏出七星步,口中念道:【一剑霜寒十四州】,手中「太虚剑」绽出万丈青芒。对面黑袍客狞笑着挥动血刃,刀气化作百丈骷髅扑来。正当他欲使出「天外飞仙」最后一式时——

铛!铛!铛!​
震耳欲聋的打铁声撕裂幻境,少年猛然惊醒。汗湿的手掌仍紧攥着半截柴火,炉膛火星溅上手背的灼痛,比不过心头怅然若失的钝痛。

「第八十七次...」小黄望着墙上深浅不一的刻痕苦笑。自父亲病逝后,这方三尺铸剑台便成了他的江湖。十八岁的单薄肩膀扛着「独孤铸剑坊」的鎏金牌匾,却连锻造常用剑型都要手忙脚乱。
 

public class 祖传铸剑术 {
    public 剑 铸造(String 剑型) {
        // 每次铸造都要从头开始
        引地火();       // 耗时三个时辰
        折叠锻打(9);    // 硬编码锻打次数
        寒潭淬火();     // 往返三十里山路

        switch(剑型) {  // 上帝类判断分支
            case "青虹": return new 青虹剑();
            case "鱼肠": return new 鱼肠匕();
            default: throw new 未知剑型异常();
        }
    }
}

现实远比幻境残酷:上月陇西马帮订购三十把斩马刀,小黄昼夜不息挥锤七日,最终因体力不支打歪了第三十二次折叠锻打。崩裂的刀胚飞溅划破牌匾,「独孤」的「独」字永远缺了一角。
 

「小黄哥,我的锄头修好了吗?」​
隔壁农户的催促将他拉回现实。望着墙角堆积的订单——三把镰刀、五柄柴斧、两杆红缨枪,还有张泛黄的「青虹剑」订单已逾期半月。炉火映照着他龟裂的手指,锻造常用剑型的流程像诅咒般重复:

  1. 引地火大阵:每次启动消耗十斤焦炭
  2. 九锻法:固定九次折叠锻打,即便玄铁已现裂纹
  3. 十三淬:机械往返寒潭十三次,从不管剑型差异

「这哪是铸剑...分明是驴拉磨!」小黄愤然掷锤,火星在潮湿的青石板上嘶叫着熄灭。坊间流言蜚语渐起:「独孤家的小子守着金招牌吃糠咽菜」「打把镰刀都要三日,迟早关门」

暗夜微光:某日收拾父亲遗物时,铁砧底部暗格突然弹开。一卷用梵文写着《天工开物录》的牛皮卷轴滚落,扉页朱砂批注刺入眼帘:
​「万器皆有道,流水自成章——墨翟」​
此后,小黄一头钻入了秘籍之中。
 


​【卷二】灵台清明:工厂方法顿悟
 

子时三刻,独孤小黄第千百次翻开《天工开物录》。泛黄的牛皮卷上,墨翟手书的「化整为零,各司其职」八字突然泛起金光。窗外惊雷炸响,一道闪电劈中铸剑台,炉中未成形的剑胚竟在雷火中熔成流动的梵文!这些梵文仿佛有生命一般跳跃了起来,围绕着小黄转动了起来,小黄立即盘腿打坐,运起体内的真气,在梵文的笼罩下进入,进入冥想。不知过了许久,冥想中的小黄猛然睁开双眼,眼中竟有金光闪过,口中不停念道:原来如此,原来如此。
几日后,小黄就创造出了一套铸剑模板。
基础架构:铸剑流水线

// 铸剑流程大纲(就像武功秘籍总纲)
abstract class 铸剑模版 {
    
    // 总铸造流程(不可更改的内功心法)
    public final 剑 开始铸剑() {
        剑胚 胚 = 打造剑胚();  // 第一步:不同剑型有不同做法
        淬火处理(胚);        // 第二步:淬火方式可变
        return 开刃刻字(胚); // 第三步:统一收尾动作
    }

    // 留给子类实现的抽象方法(各派系独门绝技)
    abstract 剑胚 打造剑胚();    // 如何打造剑胚
    abstract void 淬火处理(剑胚 胚); // 如何淬火

    // 固定收尾方法(独孤家祖传手艺)
    private 剑 开刃刻字(剑胚 胚) {
        System.out.println("刻上『独孤制造』");
        return 胚.打磨开刃();
    }
}

 具体实现:不同剑型的工坊
 

// 青虹剑流水线(好比武当派剑法)
class 青虹剑工坊 extends 铸剑模版 {

    @Override
    剑胚 打造剑胚() {
        System.out.println("【采天山玄铁】→【折叠锻打9次】");
        return new 青虹剑胚(); // 青虹剑特制剑胚
    }

    @Override
    void 淬火处理(剑胚 胚) {
        System.out.println("【寒潭浸泡3时辰】→【烈日暴晒1日】");
        胚.硬度 = 90; // 特殊淬火效果
    }
}

// 鱼肠匕流水线(如同唐门暗器)
class 鱼肠匕工坊 extends 铸剑模版 {

    @Override
    剑胚 打造剑胚() {
        System.out.println("【熔炼五毒金属】→【弯曲蛇形锻造】");
        return new 蛇形剑胚(); // 匕首专用剑胚
    }

    @Override
    void 淬火处理(剑胚 胚) {
        System.out.println("【浸入蝎毒液】→【阴干于古墓】");
        胚.淬毒等级 = "见血封喉";
    }
}
使用示例:武林人士下单
 
public class 江湖 {
    public static void main(String[] args) {
        // 武当掌门订购青虹剑
        铸剑模版 武当订单 = new 青虹剑工坊();
        剑 真武剑 = 武当订单.开始铸剑();
        真武剑.展示属性(); // 输出:天山玄铁材质,硬度90

        // 唐门刺客订购鱼肠匕
        铸剑模版 唐门订单 = new 鱼肠匕工坊();
        剑 毒牙匕 = 唐门订单.开始铸剑();
        毒牙匕.展示属性(); // 输出:蛇形带毒,淬毒等级见血封喉
    }
}

核心思想图解

           铸剑模版
          /         \
    青虹剑工坊    鱼肠匕工坊
       ↓              ↓
   青虹剑胚       蛇形剑胚
   寒潭淬火       毒液淬火

此后,小黄的生意蒸蒸日上,按照这样子下去,财富自由指日可待。但是 

【卷三】风云再起:抽象工厂参悟 

西域来客:成套兵器的挑战

三年后的深秋,波斯商队驼铃惊破铸剑坊的平静。大胡子首领阿卜杜拉拍出羊皮卷:「我们要三百套大马士革风格兵器——弯刀需带新月纹,圆盾要有星辰图,两者纹路必须严丝合缝!」

小黄望着图纸倒吸冷气:旧式工坊虽能单铸刀剑,却无法保证成套兵器的风格统一性。更棘手的是,当他想新增波斯地毯作为赠品时,发现需要修改所有工坊:

// 旧版工厂的局限(需不断添加新方法)
class 大马士革工坊 {
    弯刀 铸弯刀() { ... }
    圆盾 铸圆盾() { ... }
    // 新增地毯方法破坏原有结构
    地毯 织地毯() { ... } 
}

三日夜不眠后,小黄突然想起《天工开物录》末页的模糊字迹——"成套者,同根同源也"。霎时体内真气如黄河奔涌,在奇经八脉中勾勒出全新铸剑图!
天道启示:抽象工厂架构
 

// 兵器套装标准(如同门派风格规范)
interface 西域兵器套 {
    弯刀 造弯刀();
    圆盾 造圆盾();
    箭矢 造箭矢();
}

// 大马士革套装实现(具体门派风格)
class 大马士革套装 implements 西域兵器套 {
    private 锻造术 锻造风格 = new 波纹锻造术(127层);

    @Override
    public 弯刀 造弯刀() {
        return new 新月弯刀(锻造风格); // 注入统一风格
    }

    @Override
    public 圆盾 造圆盾() {
        return new 星辰圆盾(锻造风格.镜像()); // 保持风格统一
    }

    @Override
    public 箭矢 造箭矢() {
        return new 流火箭(锻造风格.简化());
    }
}

// 波斯套装实现(不同风格)
class 波斯套装 implements 西域兵器套 {
    private 锻造术 锻造风格 = new 藤蔓纹锻造术();

    @Override
    public 弯刀 造弯刀() { ... } // 统一使用藤蔓纹
    @Override
    public 圆盾 造圆盾() { ... }
    @Override
    public 箭矢 造箭矢() { ... }
}
实战演示:套装兵器铸造
 
public class 波斯商队 {
    public static void main(String[] args) {
        // 选择套装风格
        西域兵器套 当前套装 = new 大马士革套装();

        // 生产成套兵器
        弯刀 主武器 = 当前套装.造弯刀();
        圆盾 副武器 = 当前套装.造圆盾();
        箭矢 远程武器 = 当前套装.造箭矢();

        // 自动校验风格一致性
        if (主武器.纹样 == 副武器.纹样) {
            System.out.println("✅ 套装风格验证通过");
        }
    }
}

奇迹诞生:当成套兵器放入熔炉淬火时,刀盾竟在空中组成星座图腾,箭矢自动飞入图腾中心,化作流星划破夜空。波斯工匠们纷纷跪拜:「这是真主赐予的神迹工艺!」

后续
  独孤小黄凭借这两套铸剑工艺,名声大噪。正当小黄志得意满时,皇宫传来急诏——要求铸造可随时变换风格的智能兵器。这即将引出更精妙的动态工厂模式,以及那个困扰武林百年的终极谜题:​依赖注入是否就是传说中的「以无招胜有招」......请期待后续。

模式对比宝典


http://www.kler.cn/a/596098.html

相关文章:

  • vue3:ref , reactive
  • 论华为 Pura X 折叠屏性能检测
  • S32K144外设实验(三):ADC单通道连续采样(中断)
  • AudioTrack
  • 树莓集团数字产业布局解读:战略+商业双驱动
  • 【数据挖掘】Python基础环境安装配置
  • 每日一题--C与C++的差别
  • Mac 上开发 Ragflow
  • PyCharm找不到包?一文解决 No module named报错~
  • 当DeepSeek走进生活:一场颠覆日常的智能革命
  • Trae AI 上新 SSHremote:服务器 Python 接口日志排查实战指南
  • ArkTS 基础语法介绍
  • 相机光学中一些疑难问题的解释
  • 【春招笔试】阿里云2025.03.20
  • 批量给 PPT 幻灯片页面添加文字和图片水印
  • 用ArcGIS做一张符合环评要求的植被类型图
  • 后端安全可靠性
  • arm64和aarch64是一个架构吗
  • Linux_进程概念(B)-环境变量进程地址空间【Linux】
  • XSS 绕过分析:一次循环与两次循环的区别