https://time.geekbang.org/column/article/386238

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/daac776d-0998-4c9c-b6b2-03c0b884db8b/21acca13c9f34e8b51a8f6f2c31b9c8f.jpg

你好,我是孔令飞,今天我们来聊聊 Go 项目开发中常用的设计模式。

在软件开发中,经常会遇到各种各样的编码场景,这些场景往往重复发生,因此具有典型性。针对这些典型场景,我们可以自己编码解决,也可以采取更为省时省力的方式:直接采用设计模式。

设计模式是啥呢?简单来说,就是将软件开发中需要重复性解决的编码场景,按最佳实践的方式抽象成一个模型,模型描述的解决方法就是设计模式。使用设计模式,可以使代码更易于理解,保证代码的重用性和可靠性。

在软件领域,GoF(四人帮,全拼 Gang of Four)首次系统化提出了 3 大类、共 25 种可复用的经典设计方案,来解决常见的软件设计问题,为可复用软件设计奠定了一定的理论基础。

从总体上说,这些设计模式可以分为创建型模式、结构型模式、行为型模式 3 大类,用来完成不同的场景。这一讲,我会介绍几个在 Go 项目开发中比较常用的设计模式,帮助你用更加简单快捷的方法应对不同的编码场景。其中,简单工厂模式、抽象工厂模式和工厂方法模式都属于工厂模式,我会把它们放在一起讲解。

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/9f4dbac4-c4ce-4e02-a379-5859e08b60f7/98fb0ecb8ba65bc83f25bb2504e51d20.png

创建型模式

首先来看创建型模式(Creational Patterns),它提供了一种在创建对象的同时隐藏创建逻辑的方式,而不是使用 new 运算符直接实例化对象。

© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。

10 | 设计方法:怎么写出优雅的 Go 项目?

11 | 设计模式:Go常用设计模式概述

27 | 权限模型:5大权限模型是如何进行资源授权的?

28 | 控制流(上):通过iam-apiserver设计,看Web服务的构建

29|控制流(下):iam-apiserver服务核心功能实现讲解

特别放送 | IAM排障指南

该试读文章来自《Go 语言项目开发实战》,如需阅读全部文章, 请购买文章所属专栏,新⼈⾸单¥68

登录 后留言