golang
已收录文章:13996篇
-
桥接模式通过接口与组合分离抽象与实现,例如在Go中定义LogImplementer接口并由ConsoleLogger和FileLogger实现,Logger结构体持有LogImplementer接口引用,可在运行时动态切换日志输出方式,实现灵活替换与解耦。164 收藏
-
多级指针在Golang中主要用于修改指针本身,常见于链表头节点更新和树结构中父节点指针调整,如**Node可让函数直接修改外部指针,避免副本修改无效;但因其易引发空指针解引用和理解复杂,建议优先使用返回新值、封装结构体(如LinkedList含Head字段)等方式提升可读性与安全性。164 收藏
-
适配器模式通过封装旧接口并实现新接口,使不兼容的组件能协同工作。Go语言利用接口隐式实现和结构体嵌入,将LegacyLogger适配为Logger,统一Alipay与WechatPay到PaymentGateway,甚至支持Reader与DataProvider双向转换,实现灵活、透明的接口整合。164 收藏
-
多模块项目通过清晰边界和独立管理提升协作效率。使用GoModules在单仓库中划分cmd、internal、pkg等模块,结合replace实现本地依赖与独立发布,确保复用性与低耦合,配合CI分模块构建测试,保障开发部署灵活性。164 收藏
-
建造者模式用于简化复杂对象构造,通过链式调用设置字段,提升可读性与维护性。Go无构造函数,当结构体字段多、存在必填校验或默认值时,直接初始化易出错且不清晰。使用Builder可逐步构建对象,在Build阶段统一验证,如User需Name和Email非空。可通过NewUserBuilder预设默认值(如Age=18、IsActive=true),并提供SetName、SetEmail等方法实现链式调用。还可扩展为函数选项模式(UserOption),支持灵活传入选项,如WithAddress、WithPho164 收藏
-
我们已经了解了Golang的Gin框架。对于Webservice服务,restful风格几乎一统天下。Gin也天然的支持restful。下面就使用gin写一个简单的服务,麻雀虽小,五脏俱全。我们先以一个单文件开始,然后再逐163 收藏