文章分类 -  golang设计模式

摘要:这次介绍最后一个创建型模式——对象池模式。顾名思义,对象池模式就是预先初始化创建好多个对象,并将之保存在一个池子里。当需要的时候,客户端就可以从池子里申请一个对象使用,使用完以后再将之放回到池子里。池子里的对象在应用运行期间永远不会被破坏或回收。 适用场景: 当需要的对象的创建成本比较高,且该类型的 阅读全文
posted @ 2023-04-20 18:43 格局打得开 阅读(152) 评论(0) 推荐(0)
摘要:原型模式也是一种创建型模式,它可以帮助我们优雅地创建对象的拷贝。在这种设计模式里面,将克隆某个对象的职责交给了要被克隆的这个对象。被克隆的对象需要提供一个clone()方法。通过这个方法可以返回该对象的拷贝。 原型模式的使用场景: 创建新对象的操作比较耗资源(如数据库操作)或代价比较高时。比较起从头 阅读全文
posted @ 2023-04-20 18:34 格局打得开 阅读(68) 评论(0) 推荐(0)
摘要:单例模式是什么 单例模式是一种创建型设计模式:单例模式保证一个类仅有一个实例,并提供一个访问它的全局访问点。 为什么要用单例模式 为什么要用单例模式?在系统中某些对象,我们只需要一个全局的,如果每次实例化会浪费资源。所以单例模式可以节约内存,加快对象访问速度,因此单例模式在某些场合适合使用。比如多个 阅读全文
posted @ 2023-04-20 18:29 格局打得开 阅读(63) 评论(0) 推荐(0)
摘要:​ 我们已经知道,工厂方法模式只能生产单一产品,如果新增同一等级的产品,那么可以增加对应产品的工厂,既如现在有这样一个需求,我们需要手机和电脑两种产品,这两种产品可以看作是形成了一个产品族,我们需要一个工厂能够同时生产手机和电脑,显然工厂方法做不到这样,而抽象工厂就可以,抽象工厂具有一个可以生产产品 阅读全文
posted @ 2023-04-20 18:06 格局打得开 阅读(42) 评论(0) 推荐(0)
摘要:我们知道,开闭原则指的是对修改关闭,对扩展开放,而工厂方法就是为了解决这个问题,它提供一个工厂抽象接口,每一种产品的生产都会有自己的工厂,消费者从对应工厂获取产品即可,如果增加了一种产品,只需要增加对应的工厂即可,从而避免了修改,只是扩展。但是也会出现一个问题,那就是会出现大量的工厂类,代码量大。 阅读全文
posted @ 2023-04-20 17:58 格局打得开 阅读(48) 评论(0) 推荐(0)
摘要:简单工厂模式是一种创建型模式,也是最常用的设计模式之一。调用方通过工厂产出并获取对象,可以不必关注对象创建的细节和构建逻辑。 在简单工厂模式下,调用方只和工厂进行交互,并告诉工厂具体获取哪种类型的对象。工厂负责和相应的struct交互,并返回需要的对象。 如下是工厂模式的UML类图: 接下来是一个工 阅读全文
posted @ 2023-04-20 17:21 格局打得开 阅读(78) 评论(0) 推荐(0)
摘要:生成器模式是什么 生成器模式也叫做建造者模式,是一种创建型的设计模式, 使你能够分步骤创建复杂对象。 为什么要用生成器模式 假设有这样一个复杂对象, 在对其进行构造时需要对诸多成员变量和嵌套对象进行复杂的初始化工作。这些初始化代码通常深藏于一个包含众多参数且让人基本看不懂的构造函数中。而且在很多时候 阅读全文
posted @ 2023-04-20 17:00 格局打得开 阅读(167) 评论(0) 推荐(0)