go
文章平均质量分 62
jeanphorn
这个作者很懒,什么都没留下…
展开
-
Golang设计模式之外观模式
1. 概述它为一套复杂的调度子系统提供一个统一的接入接口。外部所有对子系统的调用都通过这个外观角色进行统一调用,降低子系统与调用者之间的耦合度。 Golang设计模式相关源码在github上有提供,可供参考!2. 举例说明那当前比较热门的微服务来说,一套服务(比如说短视频服务)包括若干子服务,如图(a),如:音乐服务,短视频服务,计数服务,推荐子服务等。客户端不同的请求会使用不同的子服务。客户端视原创 2017-09-24 16:46:25 · 2319 阅读 · 0 评论 -
Golang设计模式之观察者模式
1. 概述观察者模式简单一句话说就是当特定事件出现时,一个对象实例把事件发布到对应的观察者实例上执行相应的更新操作。一个观察目标可以对应多个观察者,而且这些观察者之间没有相互联系,可以根据需要增加和删除观察者,使得系统更易于扩展,这就是观察者模式的模式动机。其类图如下:具体的代码可示例从github上进行下载。2. golang具体实现示例首先,定一个事件类型,发生事件驱动时将事件传递给观察者们。原创 2017-12-12 17:34:56 · 4378 阅读 · 0 评论 -
golang log模块之log4go使用介绍
1. 描述在go语言中,自身已经集成了一定log模块,开发者可以使用go语言自身的log包(import “log”)。也有不少对自身log的开源封装。对于一些简单的开发,自身的log模块就已经足够应付。但是对一些大型,复杂的开发,log需要分门别类的输出,或者通过网络进行输出,自身log模块将难以应对。当前也有一些比较重量级的log模块,比如logrus,可以实现比较复杂的功能。这里介绍一个轻量级原创 2017-11-19 20:29:46 · 13189 阅读 · 0 评论 -
Golang设计模式之装饰模式
1. 概述装饰模式就是在不改变对象内部结构的情况下,动态扩展它的功能。它提供了灵活的方法来扩展对象的功能。2. 实现下面是一个简单的实现逻辑,通过Decorate来进一步装饰Dressing函数:type Object func(string) stringfunc Decorate(fn Object) Object { return func(base string) string {原创 2017-10-14 21:20:47 · 2439 阅读 · 0 评论 -
Golang设计模式之代理模式
1. 概述代理模式,简单来说就是提供一个对象来控制其他对象的功能。在一些情况下,一个Object不适合直接引用目标对象,但可以通过代理对象调用目标对象,起到中介代理的作用。相关源代码demo在Github上,可供参考!2. 实现示例那个简单的例子,中介代理各业主的房子。每个业主都有个卖房的函数。中介代理的相关实现如下://被代理的公共函数//type ProxyFuncs interface {原创 2017-10-22 16:38:25 · 2616 阅读 · 0 评论 -
golang设计模式之建造者模式
1. 概述建造者模式将一个复杂的对象与它的表示分离,同样的创造过程可以建造出不停的表示。比如汽车,它包括商标、车轮、颜色、发送机等各种部分。而对于大多数用户而言,无须知道这些部件的装配细节,也几乎不会使用单独某个部件,而是使用一辆完整的汽车,可以通过建造者模式对其进行设计与描述,建造者模式可以将部件和其组装过程分开,一步一步创建一个复杂的对象。类图: 相关源代码demo在Github上,可供参考!原创 2017-09-03 17:00:40 · 3409 阅读 · 1 评论 -
golang设计模式之工厂方法模式
1. 概述简单工厂模式是通过传递不同的参数生成不同的实例,缺点就是扩展不同的类别时需要修改代码。工厂方法模式为每一个product提供一个工程类,通过不同工厂创建不同实例。类图:相关源代码demo在Github上,可供参考!2. 实现过程工厂方法定义一个创建struct的接口,让子struct去实现。type AnimalFactory interface { CreateAni原创 2017-09-03 16:48:26 · 4413 阅读 · 0 评论 -
golang设计模式之简单工厂模式
1. 写在前面在面向对象的编程语言中(如java,C++)设计模式的概念广为人知, 应用的也非常广泛。设计模式让我们的代码变得灵活起来,具有很强的扩展性。但在与C语言比肩的Go语言中,设计模式的概念并没有十分突出,甚至很少听到。在Go的开发中,借鉴design pattern的理念同样回味无穷我们的开发带来极大的便利。相关源代码demo可从Github上,可供参考!2. 简单工厂模式1. 简单工厂模原创 2017-08-31 23:15:55 · 3825 阅读 · 0 评论 -
Golang设计模式之单例模式
1. 概述单例模式,顾名思义就是在程序的运行中只产生一个实力。在Go实现上也有多种形式。相关源代码demo在Github上,可供参考!2. 实现一、懒汉模式.这种方式实现起来特别简单,直接判断一个实力是不是为nil, 如果是,则新生成;否则返回已有的。但它和多数语言一样,只适合用在单线程。type SingleTon struct {}var instance *SingleTonfunc Get原创 2017-09-16 11:52:15 · 4542 阅读 · 0 评论 -
Golang百万级高并发实践
写在前面Go语言作为新兴的语言,最近发展势头很是迅猛,其最大的特点就是原生支持并发。它使用的是“协程(goroutine)模型”,和传统基于 OS 线程和进程实现不同,Go 语言的并发是基于用户态的并发,这种并发方式就变得非常轻量,能够轻松运行几万并发逻辑。Go 的并发属于 CSP 并发模型的一种实现,CSP 并发模型的核心概念是:“不要通过共享内存来通信,而应该通 过通信来共享内存”。这在 G原创 2018-01-09 22:17:48 · 34466 阅读 · 18 评论