go学习与应用
感悟聚集
兴趣于研究分布式存储,和linux内核研究和云平台新技术
展开
-
设计模式golang-外观模式
定义提供一个统一的接口,用来访问子系统中的一群接口。外观定义了一个高层接口,让子系统更容易使用。角色1.高层接口2.子系统接口例子小明喝咖啡,咖啡店制作咖啡,制作咖啡又需要咖啡豆和水等,咖啡店对于小明来说就统一了咖啡豆等子类访问。//子系统接口type Caffe struct{ Name string}type CaffeineShop interface{MakeCaf...原创 2020-04-12 23:46:53 · 163 阅读 · 0 评论 -
设计模式golang-适配器模式
适配器模式定义将一个接口转换成客户期望的另一个接口。适配器让原本接口不兼容的类可以合作无间。角色1.源接口。2.适配目的接口。3.适配结构体。例子人类能说话,动物也能发声叫,人类能学动物叫,需要一个转换器把人类的叫声转换为动物的叫声。//适配目的接口type AnimalSound interface{Sound()}//源结构体type PeopleSpeak stu...原创 2020-03-29 22:23:16 · 266 阅读 · 1 评论 -
设计模式golang-命令模式
命令模式定义将一个请求封装为一个对象,从而使我们可用不同的请求对客户进行参数化;对请求排队或者记录请求日志,以及支持可撤销的操作。命令模式是一种对象行为型模式,其别名为动作(Action)模式或事务(Transaction)模式。角色1.命令抽象接口2.请求结构体例子一个盒子上的按钮执行//命令抽象接口type Command interface { Execute()}/...原创 2020-03-22 20:47:31 · 188 阅读 · 0 评论 -
设计模式golang-单例模式
单例模式定义确保一个类只有一个实例,并提供一个全局访问点。角色1.全局访问点即全局访问函数。2.单例结构体。例子var m *singlevar once sync.Once //单例结构体type single struct{ Name string}//全局访问此结构体实例的函数func GetInstance()*single{ once.Do(f...原创 2020-03-15 17:21:17 · 100 阅读 · 0 评论 -
设计模式golang-工厂模式
工厂模式定义创建对象的接口,让其子类自己决定实例化哪个类,工厂模式使其创建过程延迟到子类进行。角色1.产品抽象接口2.工厂创建产品方法3.产品实例例子选银行借钱的例子,资质方法根据你的收入等其他情况给你选择银行。//抽象产品接口type Bank interface { BorrowMoney()}//具体银行产品实例type BjBank struct{}func...原创 2020-03-08 17:18:28 · 91 阅读 · 0 评论 -
设计模式golang-装饰者模式
装饰者模式定义动态地将责任附加到对象上。若要扩展功能,装饰者提供了比继承更有弹性的替代方案。角色1.装饰抽象接口2.装饰者3.被装饰者角色关系:装饰者和被装饰者通过装饰抽象接口关联。例子一个早餐铺,卖早餐事物包子、豆浆、鸡蛋,客户可以组合购买。//抽象装饰接口type Food interface { GetFoodDesc()string Cost()float64}...原创 2020-02-29 19:59:15 · 237 阅读 · 1 评论 -
设计模式golang-观察者模式
在这里插入代码片# 观察者模式定义一系列对象之间的一对多的关系,当一个对象改变状态时,它的所有依赖者都会收到通知。原理是观察者订阅被观察者,如果被观察者状态变化,通知订阅的观察者。角色被观察者被观察者订阅抽象接口观察者结构体实现订阅接口角色关系为:观察者实现被观察者抽象的订阅接口,观察者订阅被观察者,被观察者一旦数据状态改变,就通知调用订阅者订阅的抽象接口。例子一个公司业务部...原创 2020-02-23 17:14:25 · 155 阅读 · 0 评论 -
设计模式golang-策略模式
策略模式定义定义算法族,分别封装起来,让他们相互可以替换,此模式让算法的变化独立于使用算法的客户(head first 设计模式书中定义)。在golang 中相当于一个interface 抽象方法类,各个结构体来实现interface 抽象的方法。角色调用策略主体策略模板策略具体实现例子小明同学还信用卡,还的方式有很多例如支付宝、微信等方式1.定义抽象策略模板2.定义具体还...原创 2020-02-22 22:02:23 · 164 阅读 · 0 评论 -
Go语言开发实践规范汇总
目录统一规范篇 合理规划目录 GOPATH设置 import 规范 代码风格 大小约定 命名篇 基本命令规范 项目目录名 包名 文件名 常量 变量 变量申明 变量命名惯例 全局变量名 局部变量名 循环变量 结构体(struct) 接口名 函数和方法名 参数名 返回值 开发篇 包 魔...转载 2020-02-22 20:40:45 · 337 阅读 · 0 评论