- 博客(28)
- 资源 (6)
- 收藏
- 关注
原创 第十章 · 外观 — 我就想洗个衣服,别让我当洗衣机工程师
她看着滚筒转起来的洗衣机(刚按了’快洗’),说:外观模式就是藏——洗衣机把进水、加热、转筒、排水、甩干藏进一个’标准洗’;政务大厅把工商、税务、银行、公安藏进一个’综合窗口’。我看到的就一个入口,按一下、交一份材料,完事。里面的零件、部门怎么配合我都不用管。但要是事情本身就简单,就别硬造门面。“……全对。"嘿嘿。"她靠着洗衣机,看着滚筒转起来,“你说,洗衣机这么现代的东西,里头居然还藏着设计模式?“再先进的技术,底层也是那套老思路。“那古人呢?古人也有设计模式吗?“有啊——古人也有设计模式,叫活字印刷。
2026-09-24 18:03:38
128
原创 第九章 · 代理 — 明星不出面,经纪人全搞定
她刷着爱豆的微博,说:明星不能直接应付所有人,中间站个经纪人——挡不合适的,把关合同的,正主专心干正事。程序里也一样,代理就干四种活:虚代理先占位、用到了才加载;保护代理守门口、没权限不让进;远程代理把远方的真身藏起来,调起来跟本地一样;还有监控代理在外层悄悄记账、记耗时。它跟适配器、装饰器不一样:转换头是换接口,加料是加功能,代理是管进出。“……全对。"嘿嘿。"她把脏衣服往我怀里一塞,“去,把这桶衣服洗了。“……我洗?"不然呢?"她瞪着眼睛,握紧了拳头。“……想不想亲自去感受一下设计模式?“什么模式。
2026-09-23 18:27:27
77
原创 第八章 · 装饰器 — 奶茶加料,不加料倒不成了
她把手机递过来给我看奶茶订单,说:原味奶茶是招牌,配方不能动。但我想喝丰富点,就一层层加料——珍珠、椰果、奶盖,套着加。每种组合不用单独定一种奶茶,加新料也不用动原味。跟适配器不一样,它不通才需要翻译;装饰器是本来就通,包一层是为了加戏。“……全对。"嘿嘿。"她把手机揣回去,“对了,你刚说第三个’包一层’的会是啥?“明天你就知道了——记住,它既不翻译、也不加料。“……神神秘秘的。行,那我等着。下一章,代理:正主不露面,中间挡一层。附:这一章她学到的,就一句话——不动底子,一层层叠加功能——装饰器。
2026-09-21 18:12:20
86
原创 第七章 · 组合 — 删文件夹这种活,别自己干,当甩手掌柜
她关掉 D 盘的文件夹,说:删套了四层的文件夹,自己钻进去一层层删,那是苦力——又累又容易漏。组合模式让我当甩手掌柜:文件夹自己喊手下删,手下再喊手下,多米诺骨牌一样连锁清干净。我在外面喊一声’删掉’就行,不用判断是文件还是文件夹、不用管套几层。但就平铺着一层的话,别硬套。“……全对。"嘿嘿。"她伸了个懒腰,“好想喝奶茶。你说我是喝原味的,还是加珍珠、加奶盖、加椰果……加一堆料?“加那么多,不还是那杯奶茶?“对哦,加料不改变它本身,但喝着就是更丰富。“你看——
2026-09-19 18:23:21
123
原创 第六章 · 桥接 — 三支毛笔,画出九种颜色
她举着毛笔,说:水彩笔把型号和颜色焊死在一支笔上,想画九种搭配得买九支;毛笔和颜料分开,三支笔加三盒颜料,蘸一下就出九种。程序里也一样——两个维度都在变,别写成一堆组合类,拆开各管各的,中间’蘸’一下连起来。但只有一个维度在变,就别硬拆。“……全对。"嘿嘿。"她放下毛笔,“那这个桥我能用电脑上吗?我电脑里文件好多,一层套一层的……”“你想问文件夹的事?“对呀,文件和文件夹操作起来感觉像一回事。下一章,组合:文件夹里套文件夹,文件和文件夹统一操作。附:这一章她学到的,就一句话——两个维度都在变?
2026-09-18 18:16:12
140
原创 第五章 · 适配器 — 插头不匹配?加个转换头就行
她把充电头插进转换器,又拔出来,说:两头都不好动的时候,别硬改,中间加个’转换头’,把一边的话翻译给另一边听——这是适配器。但要是两边我都能改,就干脆把接口统一了,别多架一座桥。“……全对。"嘿嘿。"她把转换头收进包里,忽然说,“你说——要是啥东西都能像这样,拆开、再重新配,就好了。“……巧了,明天晚上讲的就是这个。"真的?"她来劲了,“讲啥?"明天给你看样东西你就懂了。"我卖了个关子,“跟画画有关。附:这一章她学到的,就一句话——一边改不动?别硬来,中间加个转换层,把话翻译通——适配器。
2026-09-16 18:04:43
168
原创 第四章 · 原型 — 点个“再来一单“,怎么还要重新选?
东西造起来麻烦,直接复制一份改改——原型。但复制分真假:浅拷贝只是表面独立,改副本连累原件;深拷贝才是真复制,里外都独立。“……加十分。“嘿嘿。对了,下周我要出国玩,听说咱这插头到那边插不进去,这可咋整?“……你猜,下一篇讲啥?“嗯??插头不匹配?加个转换头就行——那叫适配器。附:这一章她学到的,就一句话——别重新造,复制一份改改;但复制要深拷贝,别只复制了个壳。(下一篇:适配器——插头不匹配?加个转换头就行。
2026-09-15 18:29:27
163
原创 第三章 · 建造者 — 两种非它不可的场景
她把手机放下,坐直了,一本正经:点外卖那种,参数又多又能省,一口气全报会乱——分步来;盖房子那种,步骤有顺序,乱了就塌——也分步来。反正复杂的东西,一步一步选,最后 build 交工,还能顺便检查漏没漏。“……全对。“嘿嘿。那下一章呢?“你说’下次还点一模一样的’——重新选一遍累不累?“累死了!“那你会怎么办?“……复制我这一单?“对。原型。附:这一章她学到的,就一句话——参数又多又能省,或者步骤有严格顺序,都该一步步来:建造者。(下一篇:原型——下次还点同一单?别重新选,复制一份改改就行。
2026-09-14 17:59:51
90
原创 第二章 · 工厂方法 & 抽象工厂 — 从全能小饭馆,到肯德基全家桶
她放下奶茶,坐直了,一本正经:“我也给你总结一个,你听听对不对——”点单的时候,我不用管谁在做饭,这是分工;想卖新的,不用折腾老店,这是开店;拿到手的东西是一整套配好的,这是全家桶。程序里也一样——该拆的拆开,该配对的锁死。“……你这总结,比很多三年经验的说得都好。"嘿嘿。"她得意了一下,“那下一个讲啥?“讲你点外卖时候的事。“外卖?我天天点!“你点的’套餐’——米饭、配菜、饮料一搭。那也是一套设计模式。“啊?点个套餐也有讲究?“你等着听就知道了。附:这一章她学到的,就一句话——
2026-09-11 18:15:35
197
原创 女朋友都能懂的设计模式系列-单例模式
她把手机一放,坐直了,一本正经:“我给你总结一下,你看对不对——”有的东西,像 Wi-Fi 名字,天生只能有一份,有第二份就乱套;有的东西,像基站、数据库连接,造一份太贵,没必要造第二份。这俩的解决办法都一样:把’造第二份’的门焊死,谁都只能拿那一份。“……你连’焊死’都学会了。"跟你混的嘛。"她得意了一下,又问,“那下一个模式呢?“下一个,讲你天天喝的那个。“奶茶?“对,奶茶。附:这一章她学到的,就一句话——有些东西只能有一份,有些东西造一份太贵;与其靠自觉,不如把门焊死,谁都造不出第二份。
2026-09-10 18:03:27
92
原创 女朋友都能懂的设计模式系列-开篇
"这样吧,"我说,“从今天晚上开始,每天晚上我给你讲一个’设计模式’。做奶茶的人,跟你点奶茶的人,压根不是一回事。我看着她的样子,忽然觉得这有点像在耕一块地——得一点一点犁,才能种出东西来。"我赶紧圆回来,“我是说,代码里有好多’做事’的逻辑。"这么跟你说吧,"我想了想,“你天天点奶茶,那你知道奶茶店是怎么把一杯奶茶做出来的吗?她缠着我问"你天天写的到底是什么",我决定用我们俩的日子,给她讲完 23 个设计模式。"不知道啊,"她理直气壮,“我只要站在柜台前说’来杯珍珠奶茶’,它自己就会出来。
2026-09-10 17:50:25
150
原创 Spring AI Advisor 入门指南:手写你的第一个 Advisor
难度:★★☆☆☆一句话:Advisor 是 Spring AI 的"拦截器"——在请求发给大模型之前、响应返回给你之前,你都可以插一手。
2026-09-09 18:05:21
295
原创 深入 Spring AI ChatClient:从一行代码到 LLM 调用的完整旅程
<think>我们只需要根据内容生成≤150字的摘要。内容主要介绍Spring AI ChatClient的架构和用法。摘要需简洁涵盖核心点:ChatClient是门面,支持流式/同步、结构化输出、Advisor等;创建方式;关键机制如Call惰性、AI Advisor等。注意字数限制。</think>本文深入剖析Spring AI ChatClient从一行代码到LLM调用的完整旅程,揭示其作为门面的流式API、同步/流式双模型、统一模型抽象及Advisor拦截链。文章详解三种创建姿势、Fluent AP
2026-09-08 17:03:26
313
原创 从“翻车“到“开挂“:我的提示词迭代优化实战手记
好的Prompt不是设计出来的,而是"养"出来的。就像养宠物一样,需要不断观察、调整、反馈,才能让它变成你想要的样子。提示词工程的精髓不在于写完美的句子,而在于学会从每次失败中找到改进的可能。你的每一次调整,都是在为模型"定制"最适合的表达方式。现在,就去试试吧!写个初始Prompt运行它分析结果优化调整重复提示词工程的终极目标是让模型成为你的"超级助手"。每次迭代,都是向这个目标迈出的一步。
2025-12-28 10:31:02
856
原创 NoSQL初识
1, 为什么要使用NoSQL1.1什么是关系型数据库像我们熟悉的mysql,oracle等都是关系型数据库。在传统的关系型数据库中,一个数据组织是由二维表以及其之间的联系组成的,给人更容易理解的直观感受。1.2什么是NoSQL 随着web2.0的快速发展,非关系型、分布式数据存储得到了快速的发展,它们不保证关系数据的ACID特性。NoSQL概念在2009年被提了出来
2014-07-18 15:43:34
887
原创 学习《spring揭秘》心得_1
学习《spring揭秘》心得1,Ioc是什么-Inversion of Control Ioc的理念:让别人为你服务。从事必躬亲到让别人为你服务Ioc是解决之道。用什么让别人直接送过来。这个别人可以称作。IoC Service Provider。我们用图来表示这种关系通常情况下,被注入对象会直接依赖于被依赖对象。但是,在IoC 的场景中,二者之间通过Io
2014-07-09 09:10:26
919
原创 activemq无法启动,端口被占用
activemq无法启动,报错端口被占用。用netstat -an无法查出61616被哪个进程占用经过排查和网上资料参考,被windows的Internet connection share(ICS)服务占用,ICS是windows的一个Internet共享服务。在计算机-》管理,服务中暂停这个服务即可。启动activemq之后,然后再启动ics即可。这样两
2013-05-10 08:35:43
1065
原创 eclispse 插件离线安装
eclipse的插件安装。在线的不用说了,说下离线的,非常方便插件维护。以安装svn为例。1,在你的本地磁盘中建立一个专门存放 Eclipse 插件的目录(虽然不必要,但这么做是一个好习惯),比如,我建立的是:D:\Development_Tools\eclipse_plugins 。在此目录中建立一个叫subeclipse 的子目录(如果你还想安装其他的插件,只需要建立相应的子目录,
2013-05-08 22:58:57
948
原创 java代码中获取spring容器中的对象
在java当中,我们会通过spring来管理对象。所有对象的创建,销毁都是又spring容器代为管理的。那么如果我想在通过java代码获取到容器中的某一个指定的对象。我该怎么办呢。下面是我参考网上的资料的一个尝试。1,首先写一个class实现ApplicationContextAware。代码如下:import org.springframework.beans.BeansExceptio
2013-04-17 13:18:49
2660
原创 windows 7打开telnet功能
win7默认关闭了telnet功能。打开方式如下.1打开控制面板,找到程序和功能中的“打开或关闭windows功能”,如图:2,在windows功能页面找到telnet client 把前面的沟打上,如图:。ok了
2013-04-08 22:43:35
670
原创 openfire源码导入到eclipse中
最近弄openfire,想要把他的源码搞到eclipse中去看看。结果网上的文章很多不靠谱。根据网上的资料和我自己的琢磨终于搞定。话不多说了。直接进入正题。1,去openfire官网下载源码。我本身下载的是成文之前最新的版本3.8.1,下载地址:http://download.igniterealtime.org/openfire/openfire_src_3_8_1.zip。2,在ecl
2013-04-01 12:25:49
1874
2
原创 Think in java第二周
本周在西宁出差,周末刚好加班,所以没有更新。今天抽空补上。 操作妇:操作符接受一个或多个参数,并生成一个新值。参数的形式与普通的方法通用不同,但是效果相同。操作符包括加号和一元的(+)、减号和一元的(-)、乘号(*)、除号(/)以及赋值号(=)。优先级:最简单的规则,先乘除再加减,程序中为了明确计算顺序,可以用括号进行明确。赋值:赋值使用“=”,它的意思是“取右边的值,把它复制给左
2012-06-05 22:04:26
2336
原创 Think in java第一周
周末抽空把自己看java编程思想的情况给自己,和广大网友做个汇报,我会尽量每个周末写一篇针对这个星期的学习内容,当成是学习笔记吧。由于本人刚开始做java开发,对java理解不是很透彻,希望有朋友看到不对的地方能帮我指正。先谢谢了各位,也希望大家一起讨论,共同进步。希望自己可以坚持到把Think in java 看完,祝福每个It人工作顺利,身体健康。废话不多说了,下面开始。
2012-05-26 12:56:47
672
原创 通过Eclipse中的Java Build Path 时报错Could not write file: xx:\xx\.classpath
通过Eclipse的import一个项目到工作台。在通过Java Build Path修改classpath时报错,网上收到解决方法:确保Eclipse说的那个文件不是可读,确保文件不是隐藏的。经过检查我的文件时隐藏,修改属性再试。没问题了。
2012-04-03 15:51:09
2583
原创 Eclipse 设置不同类型文件的默认编码格式
Eclipse中项目设置了utf-8编码,可是打开某一个java源文件,发现他采用的是系统的默认编码。此时可以右键点击文件选择properties=》resources中,在Text file encoding中设置为uft-8编码。一两文件还ok。多的话人会疯掉的。其实还有一个方法:window=》preferences=》在左边找到Content Types 选中。在右面找你想要指定默认编
2012-04-01 11:36:37
831
java编程思想中用的额外的jar包
2012-05-21
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅