天津网站建设技术支持网站图片特效代码
第一章:乱世起(外观初现)
黄巾余孽张角三兄弟操控"混沌子系统",各地流民不堪996劳役。观国隐士诸葛孔明出山,在博望坡构建首个"军师智脑":
/*** 外观模式:军师智脑系统(简化复杂子系统调用)*/
class StrategyFacade {// 子系统1:军事指挥系统private ArmySystem army = new ArmySystem();// 子系统2:后勤保障系统private LogisticsSystem logistics = new LogisticsSystem();// 子系统3:情报信息系统private IntelSystem intel = new IntelSystem();/*** 统一战略部署接口* @param plan 作战计划名称*/public void deployStrategy(String plan) {System.out.println("【观国军师系统启动】");intel.collectInfo(); // 收集情报logistics.allocateResources(); // 调配资源army.execute(plan); // 执行作战}
}// 子系统实现类
class ArmySystem {public void execute(String plan) {System.out.println("执行「" + plan + "」作战方案");}
}class LogisticsSystem {public void allocateResources() {System.out.println("调配粮草、装备等战略物资");}
}class IntelSystem {public void collectInfo() {System.out.println("通过间谍网收集敌军情报");}
}
// main函数使用示例
"从此调兵遣将,如臂使指!"诸葛羽扇轻挥,三千流民经外观封装,竟成虎狼之师。
第二章:元国兴(享元破局)
兖州曹营,郭嘉破解《真经·享元篇》。十万青州兵装备玄铁重甲,每副甲胄却仅耗三成资源:
import java.util.*;/*** 享元模式:玄甲军备共享池(重用大量相似对象)*/
class ArmorFlyweight {// 内在状态(共享不变部分)private String material = "玄铁";private String pattern = "饕餮纹";/*** 部署装甲(外在状态由外部指定)* @param pos 部署坐标*/public void deploy(Coordinate pos) {System.out.println("在("+pos.x+","+pos.y+")部署" + material + pattern + "装甲");}
}/*** 装甲工厂(管理共享池)*/
class ArmorFactory {private static Map<String, ArmorFlyweight> pool = new HashMap<>();/*** 获取装甲实例* @param key 装甲类型*/public static ArmorFlyweight getArmor(String key) {if(!pool.containsKey(key)) {System.out.println("创建新型号装甲:" + key);pool.put(key, new ArmorFlyweight());}return pool.get(key);}
}// 坐标类(外在状态)
class Coordinate {int x, y;public Coordinate(int x, int y) {this.x = x;this.y = y;}
}
官渡战场,袁绍五十万大军被共享装甲洪流吞没。"吾以十万甲,破百万兵!"曹操剑指江北。
第三章:合国立(组合擎天)
长江之畔,周郎观曹军艨艟战舰,悟出组合真谛:
import java.util.*;/*** 组合模式:舰队作战体系(树形结构管理)*/
interface MilitaryUnit {void deploy(); // 部署命令
}/*** 叶子节点:单艘战船*/
class Warship implements MilitaryUnit {public void deploy() { System.out.println("楼船进入战斗位置"); }
}/*** 组合容器:舰队编队*/
class FleetComposite implements MilitaryUnit {private List<MilitaryUnit> units = new ArrayList<>();/*** 添加作战单元*/public void addUnit(MilitaryUnit unit) {units.add(unit);}/*** 递归部署整个编队*/public void deploy() {System.out.println("【舰队展开战斗队形】");units.forEach(MilitaryUnit::deploy);}
}
赤壁火起时,东吴舰队如魔方般重组变换。黄盖旗舰化作组合根节点,火船集群为叶节点,竟将曹军铁索连舟烧作飞灰。
第四章:三分定(模式对决)
汉中之战,三国精锐尽出:
1.观国【为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得这一子系统更加容易使用】
public class GuanMain {public static void main(String[] args) {StrategyFacade zhuge = new StrategyFacade();// 调用统一接口执行作战zhuge.deployStrategy("火烧新野");}
}
# 输出:
# 【观国军师系统启动】
# 通过间谍网收集敌军情报
# 调配粮草、装备等战略物资
# 执行「火烧新野」作战方案
2. 元国【主要用于减少创建对象的数量,以减少内存占用和提高性能。它通过共享已经存在的对象来避免创建过多的相似对象】
// main函数使用示例
public class YuanMain {public static void main(String[] args) {// 模拟在三个位置部署同型装甲String armorType = "虎豹骑专用甲";// 获取共享装甲实例ArmorFlyweight armor1 = ArmorFactory.getArmor(armorType);ArmorFlyweight armor2 = ArmorFactory.getArmor(armorType);// 部署到不同位置(传递外在状态)armor1.deploy(new Coordinate(10, 20));armor2.deploy(new Coordinate(30, 40));System.out.println("装甲实例是否相同:" + (armor1 == armor2));}
}
# 输出:
# 创建新型号装甲:虎豹骑专用甲
# 在(10,20)部署玄铁饕餮纹装甲
# 在(30,40)部署玄铁饕餮纹装甲
# 装甲实例是否相同:true
3.合国 【将对象组合成树形结构以表示 “部分 - 整体” 的层次结构,使得用户对单个对象和组合对象的使用具有一致性】
// main函数使用示例
public class HeMain {public static void main(String[] args) {// 创建舰队FleetComposite fleet = new FleetComposite();// 添加作战单元fleet.addUnit(new Warship());fleet.addUnit(new Warship());// 创建子编队FleetComposite subFleet = new FleetComposite();subFleet.addUnit(new Warship());fleet.addUnit(subFleet);// 执行整体部署fleet.deploy();}
}
# 输出:
# 【舰队展开战斗队形】
# 楼船进入战斗位置
# 楼船进入战斗位置
# 【舰队展开战斗队形】
# 楼船进入战斗位置
终章:归晋(模式融合)
司马懿观三家战法,在五丈原顿悟模式融合
"所谓模式,分则亡,合则昌!"当洛阳城头升起"晋"字大旗,三大模式终融为《设计真经》终极奥义——架构之道。