[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"site-settings":3,"\u002Fcategories":26,"\u002Farticles:{\"page\":3,\"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,74,83,92,100,108,117,126,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},"2113933745433088002","design-pattern-14","设计模式修炼之路 ⑭ 模板模式——焊死骨架，留白细节","final 焊死流程骨架、四种方法各司其职、钩子是选答题、从 Servlet 到 AQS 全是填空",3418,8834,23,"2024-06-13T15:33:43",{"id":67,"slug":68,"title":69,"summary":70,"coverUrl":9,"categoryId":35,"status":45,"topFlag":4,"viewCount":71,"likeCount":4,"wordCount":72,"readingMinutes":64,"publishedAt":73},"2113932970753527809","design-pattern-13","设计模式修炼之路 ⑬ 代理模式——控制访问，而非增强","控制访问而非增强、JDK 动态代理的 $Proxy0、CGLIB 与 Spring AOP 的老搭档",3804,9153,"2024-05-02T10:29:24",{"id":75,"slug":76,"title":77,"summary":78,"coverUrl":9,"categoryId":35,"status":45,"topFlag":4,"viewCount":79,"likeCount":4,"wordCount":80,"readingMinutes":81,"publishedAt":82},"2113931783249596417","design-pattern-12","设计模式修炼之路 ⑫ 享元模式——共享细粒度对象","共享细粒度对象、内部状态与外部状态的切分、Integer 缓存与字符串常量池",2866,6956,18,"2024-04-15T17:46:59",{"id":84,"slug":85,"title":86,"summary":87,"coverUrl":9,"categoryId":35,"status":45,"topFlag":4,"viewCount":88,"likeCount":4,"wordCount":89,"readingMinutes":90,"publishedAt":91},"2113933638763548673","design-pattern-11","设计模式修炼之路 ⑪ 外观模式——给杂乱子系统一个入口","给杂乱子系统一个统一入口、只编排不干活、SLF4J 名字里的 Facade",3176,7681,20,"2024-03-20T15:49:38",{"id":93,"slug":94,"title":95,"summary":96,"coverUrl":9,"categoryId":35,"status":45,"topFlag":4,"viewCount":97,"likeCount":4,"wordCount":98,"readingMinutes":90,"publishedAt":99},"2113931625669595138","design-pattern-10","设计模式修炼之路 ⑩ 装饰器模式——不改原类，动态加功能","不改原类动态加功能、\"我是组件+我有组件\"、Java IO 流的套娃设计",1003,7847,"2024-02-10T15:14:16",{"id":101,"slug":102,"title":103,"summary":104,"coverUrl":9,"categoryId":35,"status":45,"topFlag":4,"viewCount":105,"likeCount":4,"wordCount":106,"readingMinutes":90,"publishedAt":107},"2113931567565901825","design-pattern-09","设计模式修炼之路 ⑨ 组合模式——叶子和容器一视同仁","部分-整体、叶子和容器一视同仁、在 DOM\u002FMyBatis 里找它",3281,7735,"2024-01-25T15:35:13",{"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},"2113931511261564929","design-pattern-08","设计模式修炼之路 ⑧ 过滤器模式——与或非条件当积木","非 GoF、与或非条件当积木、Predicate 是 JDK 收编版",3801,7442,19,"2024-01-08T20:51:45",{"id":118,"slug":119,"title":120,"summary":121,"coverUrl":9,"categoryId":35,"status":45,"topFlag":4,"viewCount":122,"likeCount":4,"wordCount":123,"readingMinutes":124,"publishedAt":125},"2113931455091445761","design-pattern-07","设计模式修炼之路 ⑦ 桥接模式——m×n 降为 m+n","继承爆炸的解药、m×n 降为 m+n、在 JDBC 里找它",1907,5226,14,"2023-12-15T15:12:08",{"id":127,"slug":128,"title":129,"summary":130,"coverUrl":9,"categoryId":35,"status":45,"topFlag":4,"viewCount":131,"likeCount":4,"wordCount":132,"readingMinutes":124,"publishedAt":133},"2113931305484816386","design-pattern-06","设计模式修炼之路 ⑥ 适配器模式——让不兼容的接口握手","类适配器 vs 对象适配器、在 Spring MVC 里找它",1578,5381,"2023-12-11T21:59: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},"2113931247385317377","design-pattern-05","设计模式修炼之路 ⑤ 原型模式——clone() 的浅与深","clone() 与 Cloneable、浅拷贝踩坑、逐字段克隆与序列化两种深拷贝",2661,5758,15,"2023-11-17T17:12:14","3"]