设计模式
aixinaxc
这个作者很懒,什么都没留下…
展开
-
订阅者模式-golang
最近学习了一下订阅者模式。根据网上的说法。订阅者模式和观察者模式的主要的区别是否有通道。观察模式是观察者和订阅者直接关联。而订阅者模式是发布者和订阅者中间会有一个通道来过渡,发布者发布消息到通道,不关心发送给谁。同时订阅者从通道中读取消息。 以下是这次的练习,具体是不是符合大家可以纠正。package dingyuezheimport "fmt"type Ch...原创 2018-05-24 17:12:39 · 1697 阅读 · 0 评论 -
享元模式-golang
此篇中主要练习享元模式,具体可以看(http://www.runoob.com/design-pattern/flyweight-pattern.html)package mainimport ( "fmt" "math/rand")func main() { color := [...]string{"Red", "Green", "Blue", "White"原创 2018-02-15 15:57:52 · 524 阅读 · 0 评论 -
适配器模式-golang
此篇中,主要练习的是适配器模式。具体可以看(http://www.runoob.com/design-pattern/adapter-pattern.html)package mainimport ( "fmt" "strings")func main() { play := AudioPlayer{} play.play("mp4","老人与海.mp4")}...原创 2018-02-12 16:04:29 · 553 阅读 · 0 评论 -
组合模式-golang
此篇中主要是练习组合模式,具体可以看菜鸟教程(http://www.runoob.com/design-pattern/composite-pattern.html)package mainimport "fmt"func main() { ceo := Employee{name: "小张", dept: "ceo", salary: 10000} headSales := ...原创 2018-02-12 11:44:06 · 593 阅读 · 0 评论 -
工厂模式-golang
此篇中主要是工厂模式的练习,具体可以看菜鸟教程(http://www.runoob.com/design-pattern/factory-pattern.html)package mainimport ( "fmt" "strings")func main() { s := Shape(Rectangle{}) s.draw() s = Shape(Circ...原创 2018-02-12 09:55:20 · 504 阅读 · 0 评论 -
策略模式-golang
在此篇中,将要练习策略模式。例子仍然是采用菜鸟教程(http://www.runoob.com/design-pattern/strategy-pattern.html)package mainimport "fmt"func main() { con := new(Content) con.Strategy = OperationAdd{} v := con.execu...原创 2018-02-11 21:03:05 · 293 阅读 · 0 评论 -
建造者模式-golang
在此篇中,我们将练习实现建造者模式。其中例子大致是菜鸟教程的例子翻版,此处采用golang实现。对于具体介绍大家可以去菜鸟教程学习(http://www.runoob.com/design-pattern/builder-pattern.html)package mainimport "fmt"func main() { menu := Menu{} HotDog := Pac...原创 2018-02-11 18:25:14 · 458 阅读 · 0 评论