go 和 rust 设计模式对比
定义 工厂模式可分为三类: 简单工厂模式 工厂方法模式 抽象工厂模式 简单工厂模式 属于创建型模式,不属于 23 种 GOF 设计模式之一,由一个工厂对象决定创建出哪一种产品类实例,逻辑为定义一个工厂类,根据传入的参数不同返回不同的产品实例,被创建的实例具有共同的父类或接口。 工厂方法模式 跟简单工厂模式的区别就是,定义了一些工厂子类,每个工厂子类都可以创建相对应的产品类实例,而不用工厂父类去根据参数创建,一般在产品类比较多的情况下,不想太多复杂的逻辑封装在工厂父类里面,可以用这种模式。 抽象工厂模式 顾名思义,把工厂抽象出来,根据具体的业务需求组合工厂创建产品实例的逻辑,通常为创建多个产品实例类。抽象工厂一旦要增加创建产品实例的逻辑,就需要修改抽象工厂接口的具体产品组合逻辑,所以并不符合开闭原则,如果是需要频繁增加(修改)产品实例的话,要衡量是否采用这种模式 基本结构 工厂模式从源码上总的来说可以分为 4 部分: 抽象产品: 通过声明接口(特性),定义了产品的业务方法。 具体产品: 通过 implement 接口(特性),定义了业务方法的具体逻辑。 抽象工厂: 按照相应的业务逻辑,声明了创建产品对象的业务方法(多数为组合方式)。 具体工厂: 通过 implement 接口(特性),定义了创建产品对象的具体逻辑。 结构设计的关键点: 产品只负责产品对象的创建,其他什么都不关心,