Head First 设计模式——观察者与装饰者模式

  一些胡扯

  这两周发生了好多事,之前偶尔看的一个公众号,号主居然生病住院了……我的健身计划看来不能一直停留在脑海中了。

  一直期待的新项目交到了我手中,但真接到手才发现真是巨坑啊!却不会像以前一样只是抱怨了,每个地方有10%制造问题的人,70%提出问题的人,20%解决问题的人。结合目前部门内的情况,我发现确实如此,真正在干活的,解决问题的人就那么几个。我也想成为解决问题的人,这样的人才是有价值的。

  还经同事介绍认识了一个妹子,程序员,,或者说码农,真的不像网上说的那样情商低、不解风情之类的吧,至少这个职业不会是减分项。

  读书笔记

  这周读了观察者与装饰者2个设计模式。可惜,我在工作中没看到用到这2种设计模式的代码。

  观察者,订阅发布模式,有2种方式,一种是推,主题把所有信息推送给所有订阅者,这种是主题主动把数据给订阅者。一种是拉,主题写get方法,订阅者去主动向主题获取数据,各有各的好处吧,没用过不太清楚。微信的公众号,邮箱的订阅…… java类里制造的一对多关系。

  它定义了对象之间的一对多依赖,这样一来,当一个对象改变状态时,它的所有依赖者都会收到通知并自动更新。

  设计原则:为了交互对象之间的松耦合设计而努力。

  Swing类里有涉及观察者模式,但我没去看,因为Swing没有业务会用了。

  装饰者模式,jdk里的代表是java.io,代码应该免于改变,能够扩展。

  动态地将责任附加到对象上,若要扩展功能,装饰者提供了比继承更有弹性的替代方案。

  类应该对扩展开放,对修改关闭。

 

 

 

 

 

 

 

 

 

  

  

posted on   唯心、tt  阅读(138)  评论(0编辑  收藏  举报

编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

统计

点击右上角即可分享
微信分享提示