
GO
lsj3210
这个作者很懒,什么都没留下…
展开
-
Go语言用container/list实现栈(Stack)
go语言中的container有heap、list、ring,没有stack。其中heap是优先级队列,虽然有Push()/Pop()接口,但是使用heap要实现heap.Interface接口,不够简洁。所以这里用list封装了一个简单的stack,留作他用。 package stack import "container/list" type Stack s转载 2016-10-27 10:03:10 · 1114 阅读 · 0 评论 -
二、大话设计模式 之 策略模式
模式特点:定义算法家族并且分别封装,它们之间可以相互替换而不影响客户端。程序实例:商场收银软件,需要根据不同的销售策略方式进行收费package mainimport ("fmt")type cashSuper interface {AcceptCash(float64) float64}type cashNormal struct {}func (normal转载 2016-11-16 11:15:34 · 251 阅读 · 0 评论 -
一、大话设计模式 之 简单工厂模式
模式特点:工厂根据条件产生不同功能的类。程序实例:四则运算计算器,根据用户的输入产生相应的运算类,用这个运算类处理具体的运算。package mainimport ("fmt")//BaseOperation接口type Operation interface {getResult() float64SetNumA(float64)SetNumB(float64)转载 2016-11-16 09:43:53 · 258 阅读 · 0 评论 -
三、大话设计模式 之 装饰模式
模式特点:动态地为对象增加额外的职责程序实例:展示一个人一件一件穿衣服的过程。package mainimport ("fmt")type Person struct {Name string}func (p *Person) show() {fmt.Println("装扮的", p.Name)}type AbstractPerson interface {s转载 2016-11-16 11:21:18 · 340 阅读 · 0 评论 -
四、大话设计模式 之 代理模式
模式特点:为其他对象提供一种代理以控制对这个对象的访问。程序实例:同模式特点描述。package mainimport ("fmt")type SchoolGirl struct {name string}func (s *SchoolGirl) setName(name string) {s.name = name}func (s *SchoolGirl) g转载 2016-11-16 11:24:04 · 228 阅读 · 1 评论