[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"site-settings":3,"\u002Fcategories":26,"\u002Farticles:{\"page\":2,\"size\":10,\"categoryId\":\"2113897628365230081\"}":54},{"code":4,"message":5,"data":6},0,"ok",{"author_city":7,"author_years":8,"site_tagline":9,"site_description":10,"skill_one_desc":11,"author_status":12,"skill_two_title":13,"about_hero_image":9,"skill_one_title":14,"icp":15,"author_role":16,"og_default_image":9,"closing_quote_date":17,"toolkit":18,"skill_two_desc":19,"author_bio":9,"site_footer":9,"site_url":20,"author_tagline":21,"weekly_thought":9,"tagline_line_one":22,"author_bio_two":9,"closing_quote":23,"site_name":24,"tagline_line_two":25,"home_hero_image":9},"西安","10","","花开空白 - 个人博客","熟悉Java、Python、Go等后端语言。","努力工作中","前端开发","后端开发","陕ICP备2021009682号-1","开发者","2022年·秋","Java,JavaScript,TypeScript,Python,Go","熟悉Js、Ts语言以及Vue、uniapp等框架。","https:\u002F\u002Firule.cn","很高兴遇见你。","把复杂的事，","把每次一发布，都当成一次和陌生人的握手。","花开空白","写成简单的故事。",{"code":4,"message":5,"data":27},[28,34,40,47],{"id":29,"name":30,"slug":31,"description":32,"sortOrder":4,"articleCount":33},"1946000000000000001","antlr4","tech","编程与技术笔记","13",{"id":35,"name":36,"slug":37,"description":38,"sortOrder":4,"articleCount":39},"2113897628365230081","设计模式","design-pattern","设计模式系列","34",{"id":41,"name":42,"slug":43,"description":44,"sortOrder":45,"articleCount":46},"1946000000000000002","随笔","essay","生活与思考",1,"0",{"id":48,"name":49,"slug":50,"description":51,"sortOrder":52,"articleCount":53},"2105200093764698113","工具","tools","好用的工具推荐",2,"1",{"code":4,"message":5,"data":55},{"list":56,"total":39,"page":143,"size":8},[57,66,75,84,92,100,108,117,125,134],{"id":58,"slug":59,"title":60,"summary":61,"coverUrl":9,"categoryId":35,"status":45,"topFlag":4,"viewCount":62,"likeCount":4,"wordCount":63,"readingMinutes":64,"publishedAt":65},"2113934492581236737","design-pattern-24","设计模式修炼之路 ㉔ 访问者模式——结构与操作分离","双分派、结构与操作分离、visit(this) 不能省、FileVisitor 与 ASM",2450,5892,15,"2024-12-12T14:45:37",{"id":67,"slug":68,"title":69,"summary":70,"coverUrl":9,"categoryId":35,"status":45,"topFlag":4,"viewCount":71,"likeCount":4,"wordCount":72,"readingMinutes":73,"publishedAt":74},"2113934307482406914","design-pattern-23","设计模式修炼之路 ㉓ 空对象模式——让判空从代码里消失","非 GoF、用空对象消灭 null 判断、十亿美元错误、NOPLogger 与 emptyList、空对象 vs Optional",1620,4606,12,"2024-11-20T12:21:47",{"id":76,"slug":77,"title":78,"summary":79,"coverUrl":9,"categoryId":35,"status":45,"topFlag":4,"viewCount":80,"likeCount":4,"wordCount":81,"readingMinutes":82,"publishedAt":83},"2113934247046680578","design-pattern-22","设计模式修炼之路 ㉒ 中介者模式——网状依赖变星型","网状依赖变星型、N×(N-1) 收成 N 条、聊天室聚餐事故、中介者 vs 观察者",1550,6591,17,"2024-11-01T18:45:07",{"id":85,"slug":86,"title":87,"summary":88,"coverUrl":9,"categoryId":35,"status":45,"topFlag":4,"viewCount":89,"likeCount":4,"wordCount":90,"readingMinutes":82,"publishedAt":91},"2113934123146940417","design-pattern-21","设计模式修炼之路 ㉑ 备忘录模式——不破坏封装的存档术","不破坏封装的存档术、宽窄接口、Git 与 Savepoint、命令+备忘录合订",3711,6474,"2024-10-08T16:37:17",{"id":93,"slug":94,"title":95,"summary":96,"coverUrl":9,"categoryId":35,"status":45,"topFlag":4,"viewCount":97,"likeCount":4,"wordCount":98,"readingMinutes":82,"publishedAt":99},"2113933908541181954","design-pattern-20","设计模式修炼之路 ⑳ 迭代器模式——统一遍历协议","统一遍历协议、for-each 只是语法糖、手写可迭代书架、fail-fast 的哲学",2334,6515,"2024-09-17T21:25:50",{"id":101,"slug":102,"title":103,"summary":104,"coverUrl":9,"categoryId":35,"status":45,"topFlag":4,"viewCount":105,"likeCount":4,"wordCount":106,"readingMinutes":82,"publishedAt":107},"2113933842262790145","design-pattern-19","设计模式修炼之路 ⑲ 状态模式——状态驱动行为","状态驱动行为、流转规则住进状态家、Thread 状态机、状态 vs 策略终局对决",1320,6715,"2024-09-02T16:09:32",{"id":109,"slug":110,"title":111,"summary":112,"coverUrl":9,"categoryId":35,"status":45,"topFlag":4,"viewCount":113,"likeCount":4,"wordCount":114,"readingMinutes":115,"publishedAt":116},"2113932265082851329","design-pattern-18","设计模式修炼之路 ⑱ 命令模式——把请求封装成对象","把请求封装成对象、增量式撤销、白送的排队与重放、Executor 的铁证",2089,7080,18,"2024-08-09T12:36:13",{"id":118,"slug":119,"title":120,"summary":121,"coverUrl":9,"categoryId":35,"status":45,"topFlag":4,"viewCount":122,"likeCount":4,"wordCount":123,"readingMinutes":64,"publishedAt":124},"2113932208883372034","design-pattern-17","设计模式修炼之路 ⑰ 责任链模式——请求沿链条传递","客户端只认识链头、节点自治三段式、纯链与管线式、从 Servlet Filter 到 Netty Pipeline",3708,5950,"2024-07-23T20:24:49",{"id":126,"slug":127,"title":128,"summary":129,"coverUrl":9,"categoryId":35,"status":45,"topFlag":4,"viewCount":130,"likeCount":4,"wordCount":131,"readingMinutes":132,"publishedAt":133},"2113932151245246465","design-pattern-16","设计模式修炼之路 ⑯ 观察者模式——事件订阅与广播","一对多依赖、订阅退订自由、生产环境三块拼图、Spring 事件机制、观察者 vs 发布订阅",3150,6331,16,"2024-07-07T14:57:29",{"id":135,"slug":136,"title":137,"summary":138,"coverUrl":9,"categoryId":35,"status":45,"topFlag":4,"viewCount":139,"likeCount":4,"wordCount":140,"readingMinutes":141,"publishedAt":142},"2113931965261418497","design-pattern-15","设计模式修炼之路 ⑮ 策略模式——if-else 的解药","一个分支一个类、工厂加 Map 连选择处都不写 if-else、Spring 自动收集、线程池拒绝策略",1681,7953,20,"2024-06-16T18:10:44","2"]