2023年6月9日

golang实现设计模式汇总-创建型 | 结构型 | 行为型

摘要: 历时一个多星期的常用设计模式暂告一段落,今天汇总下使用频率较高的几种常见设计模式。 以下个人根据类型分为3种,不喜勿喷: * 创建型 * 结构型 * 行为型 ### 1.创建型 常用如下: * [单例模式](https://juejin.cn/post/7238604003599974456) * 阅读全文

posted @ 2023-06-09 18:21 进击的davis 阅读(91) 评论(0) 推荐(0) 编辑

golang实现设计模式之观察者模式-优缺点,适用场景

摘要: `观察者模式`是一种行为型模式,其定义一种订阅机制, 可在对象事件发生时通知多个 “观察” 该对象的其他对象。 观察者模式常用 `订阅/发布机制`,即发布者持有所有订阅者,当发布者状态变更或者特定行为时,通知所有订阅者。 **结构** * 1.发布者。属性及行为:属性,订阅者列表,行为,添加、删除订 阅读全文

posted @ 2023-06-09 18:20 进击的davis 阅读(112) 评论(0) 推荐(0) 编辑

golang实现设计模式之模板模式-优缺点,适用场景

摘要: `模板模式`是一种行为型设计模式,其定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。 **特点** * 1.算法结构已确定。 * 2.具体实现交由子类实现。 **结构** * 1.抽象类(Abstract Class)。算 阅读全文

posted @ 2023-06-09 18:19 进击的davis 阅读(319) 评论(0) 推荐(0) 编辑

golang实现设计模式之责任链模式-优缺点,适用场景

摘要: `责任链模式`是一种行为型的设计模式,也叫职责链,定义:在这样的场景中,请求需要经过一系列的处理者,通过列表或者链表将处理者组合起来,请求依次被处理者处理,如果需要中断,也可以及时退出处理。上述的这种的应用场景,典型的就是在 `web` 应用中的 `中间件或者拦截器`,比如 `Gin框架` 的中间件 阅读全文

posted @ 2023-06-09 18:19 进击的davis 阅读(286) 评论(0) 推荐(0) 编辑

golang实现设计模式之策略模式-优缺点,适用场景

摘要: `策略模式`是一种行为型的设计模式,该模式定义了一系列算法,并将每个算法封装起来,使它们可以相互替换,且算法的变化不会影响使用算法的客户,或者认为把使用算法的责任和算法的实现分割开来,并委派给不同的对象对这些算法进行管理。 **结构** * 1.抽象策略(Strategy)类。定义了一个公共接口,各 阅读全文

posted @ 2023-06-09 18:19 进击的davis 阅读(266) 评论(0) 推荐(0) 编辑

golang实现设计模式之适配器模式-优缺点,适用场景

摘要: `适配器模式`是一种结构型设计模式,它是通过接口转换,使得原先接口不被兼容的其他类可以一起工作。 **类型** * 类结构型 特点: \- 程序耦合性高 \- 要求程序员对组件内部结构熟悉 \- 应用相对少些 类适配器模式可以用过继承的方式来实现。 * 对象结构型 特点:可重用性较差。 对象适配器允 阅读全文

posted @ 2023-06-09 18:18 进击的davis 阅读(165) 评论(0) 推荐(0) 编辑

golang实现设计模式之组合模式-优缺点与适用场景

摘要: `组合模式`是一种将对象组合成树状的层次结构的模式,用来表示“整体-部分”的关系,使用户对单个对象和组合对象具有一致的访问性,属于结构型设计模式。 **结构** * `抽象构件(Component)角色`:它的主要作用是为树叶构件和树枝构件声明公共接口,并实现它们的默认行为。在透明式的组合模式中抽象 阅读全文

posted @ 2023-06-09 18:18 进击的davis 阅读(70) 评论(0) 推荐(0) 编辑

golang实现设计模式之代理模式-优缺点,适用场景

摘要: `代理模式`作为一种结构型的设计模式,因为某种原因,需要对访问的对象通过代理访问目标对象,访问对象不适合或者不能直接引用该目标对象,代理就成为访问对象和目标对象的中介。 **结构** * 1.抽象主题(Subject)类。通过接口或抽象类声明真实主题和代理对象实现的业务方法。 * 2.真实主题(Re 阅读全文

posted @ 2023-06-09 18:17 进击的davis 阅读(160) 评论(0) 推荐(0) 编辑

golang实现设计模式之装饰器模式-优缺点,适用场景

摘要: `装饰器模式`是一种结构型设计模式,简单概括就是:不改变先有对象结构下,动态给对象增加一些职责。 装饰器模式通过组合方式实现,与继承的异同: * 使用继承方式,具有静态特征,耦合度高,并且随着扩展功能的增多,子类会很膨胀。 * 使用组合方式,创建装饰对象来装饰真实对象,原对象功能不变,另外扩展。 * 阅读全文

posted @ 2023-06-09 18:17 进击的davis 阅读(296) 评论(0) 推荐(0) 编辑

导航