随笔分类 -  设计模式

摘要:0. 代理模式 代理模式是在代理对象添加非业务功能,而让被代理对象专职负责业务处理的设计模式。 1. 实现 实现 application 对象负责处理外部请求。 package main import "fmt" type Server interface { HandleRequest(strin 阅读全文
posted @ 2024-07-18 16:09 hxia043 阅读(12) 评论(0) 推荐(0) 编辑
摘要:桥接模式 桥接模式是继承转组合非常好的运用,桥接模式也可以看作将类的职责拆分,实现高内聚低耦合。 实现 如果我们有计算机接口实现打印功能: type Computer interface { Print() SetPrinter(Printer) } 实现该接口需要计算机加打印机。这里有 Mac/W 阅读全文
posted @ 2024-07-18 16:07 hxia043 阅读(16) 评论(0) 推荐(0) 编辑
摘要:0. 适配器模式 适配器顾名思义,是为了适配对象之间的不匹配而设计的模式。 1. 实现 假设我们有 Computer 接口实现 InsertIntoLightningPort方法: type Computer interface { InsertIntoLightningPort() } type 阅读全文
posted @ 2024-07-18 16:05 hxia043 阅读(7) 评论(0) 推荐(0) 编辑
摘要:装饰器模式 装饰器模式是增强对象功能的模式。 实现 现有 Pizza 类如下: package main import ( "fmt" ) type Pizza interface { GetPrice() int } type BasicPizza struct{} func (bp *Basic 阅读全文
posted @ 2024-07-18 16:04 hxia043 阅读(13) 评论(0) 推荐(0) 编辑
摘要:建造者模式 建造者模式是创建复杂对象的模式。具体的分析在 浅析建造者模式。 建造者模式在 Kubernetes 的应用 在 Kubernetes 中 kubectl 使用了建造者模式构建对象。如下: // https://github.com/kubernetes/kubectl/blob/mast 阅读全文
posted @ 2024-07-18 16:00 hxia043 阅读(7) 评论(0) 推荐(0) 编辑
摘要:单例模式 单例模式是创建全局唯一的对象所使用的设计模式。比如,存储 log,记录时间,更新缓存的对象等等。 实现 饿汉单例 单例模式的实现,我们很自然的想到在 init 中创建私有全局变量对象,然后使用 GetObject 获取对象的方式来实现。比如: package logger type log 阅读全文
posted @ 2024-07-18 16:00 hxia043 阅读(3) 评论(0) 推荐(0) 编辑
摘要:工厂模式是创建一系列相关对象的模式。 实现 如果我们要创建一系列相关的对象,如下: package logger import ( "fmt" ) type Logger interface { PrintLog() } type PdfLogger struct{} type HTMLLogger 阅读全文
posted @ 2024-07-18 15:58 hxia043 阅读(7) 评论(0) 推荐(0) 编辑

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