Golang设计模式之模板方法模式

模板方法模式模板方法模式是一种行为型设计模式,它在父类中定义一个算法的框架,允许子类在不改变算法结构的情况下重写算法的某些特定步骤。这种模式通过把不变的部分代码放在父类中,把可变的行为延迟到子类中实现,从而提高了代码的复用性。 模板方法模式中的角色 AbstractClass(抽象类):定义了模板方法和算法的框架。它实现了一些步骤,这些步骤可以是具体的方法也可以是抽象方法
阅读全文

Golang设计模式之代理模式

代理模式代理模式是一种结构型设计模式,它为其他对象提供一个代理以控制对这个对象的访问。代理模式在不直接访问实际对象的情况下,提供了对目标对象的间接访问。通过引入一个代理对象来间接操作实际对象,可以在不改变实际对象代码的前提下,增加额外的功能操作,如访问控制、延迟初始化、日志记录等。 代理模式中的角色 Subject(主题):定义了RealSubject和Proxy共有的接
阅读全文

Golang设计模式之适配器模式

适配器模式适配器模式是一种结构型设计模式,它允许将不兼容的接口转换为一个客户端期望的另一个接口。适配器模式使得那些接口不兼容的类可以一起工作。 适配器模式中的角色和职责 Target(目标抽象类):定义客户所需接口,可以是一个抽象类或接口,也可以是具体类。 Adapter(适配器类):作为一个转换器,对Adaptee和Target进行适配,适配器类是适配器模式的核心。
阅读全文

Golang设计模式之抽象工厂方法

抽象工厂方法模式概述抽象工厂方法模式是一种创建型设计模式,它提供了一种方式,用于创建一系列相关或相互依赖的对象,而不需要指定它们具体的类。这种模式通过定义一个创建对象的接口,允许客户端使用这个接口来创建各种产品,而不需要知道具体的类。 产品族与产品等级结构 产品族:具有相同特点或功能,但来自不同地区、厂商、开发包或组织模块的产品集合。 产品等级结构:具有相同特点或功能
阅读全文

Golang设计模式之工厂方法模式

工厂方法模式概述工厂方法模式是一种创建型设计模式,其核心思想是定义一个用于创建对象的接口,但让实现这个接口的子类来决定实例化哪一个类。工厂方法把一个类的实例化推迟到其子类。 工厂方法模式中的角色和职责 抽象工厂(Abstract Factory)角色:定义创建产品对象的接口,但不实现该接口。 具体工厂(Concrete Factory)角色:实现抽象工厂中的接口方法,
阅读全文

Golang设计模式之简单工厂模式

简单工厂模式概述简单工厂模式是一种创建型设计模式,它提供了一种创建对象的最佳方式。在这种模式中,一个工厂类负责创建其他类的实例,并且封装实例的创建逻辑。这种模式让类的实例化推迟到子类进行。 为什么需要简单工厂模式在没有工厂模式的情况下,如果需要创建多种类型的对象,可能会导致一个类中包含大量条件判断语句,这不仅增加了代码的复杂性,也违反了单一职责原则和开闭原则。 简
阅读全文