代码改变世界

随笔分类 -  设计模式

接口的所有权之争

2022-06-23 15:57 by coderidea, 526 阅读, 收藏, 编辑
摘要: ​ 在 一文get到SOLID原则的重点 和 SOLDI原则之DIP:依赖倒置原则 里提到过DIP (依赖倒置原则)里提到过接口所有权的问题。今天再次聊下接口所有权。 在《敏捷软件开发:原则、模式与实践》里作者提到了一个开关和台灯设计的例子。 ​ 图1 图1的设计中,Switch 对象可以轮询真实的 阅读全文

一文get到SOLID原则的重点

2022-06-21 13:42 by coderidea, 429 阅读, 收藏, 编辑
摘要: ​ 最近没事再次翻开《敏捷软件开发:原则、模式与实践》看,发现以前似懂非懂的东西突然就看懂了,get到了讲的重点。 SOLID(单一职责原则、开放—封闭原则、里氏替换原则、接口隔离原则以及依赖倒置原则)是由罗伯特·C·马丁引入,成为了面向对象设计中的五个基本原则。当这些原则被一起应用时,它们使得一个 阅读全文

策略模式在应用中的实践

2022-06-20 08:59 by coderidea, 431 阅读, 收藏, 编辑
摘要: ​ 行为模式有一种模式叫策略模式(Strategy Pattern),一个类的行为或其算法可以在运行时更改。在策略模式中,我们创建表示各种策略的对象和一个行为随着策略对象改变而改变的 context 对象。策略对象改变 context 对象的执行算法。 意图:定义一系列的算法,把它们一个个封装起来, 阅读全文

微服务的故障处理

2022-06-17 19:35 by coderidea, 706 阅读, 收藏, 编辑
摘要: 当微服务发生故障后怎么办?最近线上发生一起故障,一个接口的慢查询拖垮了整个应用,导致整个应用变得不可用。如果正好赶上流量高峰,应用重启都变得很困难,除非把入口整个关闭,再重启应用等待应用的恢复。 在复盘时,结论是增加上线审核流程和控制来试图阻止故障的再次发生,很少花费心思想想如何更加容易地在第一时间 阅读全文

Null Object设计模式

2011-09-28 09:47 by coderidea, 444 阅读, 收藏, 编辑
摘要: 在设计实现中,很多地方都用到了Null Object设计模式。Null Object模式的含义在于,提供一个对象给指定的类型,用以代替这个对象为空的情况。 Null Object提供了“什么也不做”的行为,隐藏来自它的合作者的细节。 对于如何理解和应用该模式,通过一个实例就能很好的进行说明。这一节我们在讨论消息分派器,消息分派器使用了前述的日志记录器,并且通过属性来注入具体的日志记录器对象。 private IEsfLogger esfLogger; public IEsfLogger EsfLogger{ set{ this.esfLogger = value; } } 现... 阅读全文