设计模式 go语言实践-5 外观模式
go语言挺简洁的,学习设计模式够用了,外观模式(Facade Pattern)隐藏系统的复杂性,并向客户端提供了一个客户端可以访问系统的接口。这种类型的设计模式属于结构型模式,它向现有的系统添加一个接口,来隐藏系统的复杂性。 这种模式涉及到一个单一的类,该类提供了客户端请求的简化方法和对现有系统类方法的委托调用。感觉和工厂模式有一定相似之处,但这个主要是为了隐藏系统复杂性。
工具:
// test project main.go package main import ( "fmt" ) type Shape interface { draw() } type Rectangle struct { } type Circle struct { } func (r *Rectangle) draw() { fmt.Println("Rectangle::draw()") } func (r *Circle) draw() { fmt.Println("Circle::draw()") } type ShapeMaker struct { circle Circle rectangle Rectangle } func Draw(shape Shape) { shape.draw() } func (shapeMaker *ShapeMaker) drawCircle() { Draw(&shapeMaker.circle) } func (shapeMaker *ShapeMaker) drawRectangle() { Draw(&shapeMaker.rectangle) } func main() { var s ShapeMaker s.drawCircle() s.drawRectangle() }
运行结果:
Circle::draw()
Rectangle::draw()
本博客是个人工作中记录,更深层次的问题可以提供有偿技术支持。
另外建了几个QQ技术群:
2、全栈技术群:616945527
2、硬件嵌入式开发: 75764412
3、Go语言交流群:9924600
闲置域名WWW.EXAI.CN (超级人工智能)出售。
另外建了几个QQ技术群:
2、全栈技术群:616945527
2、硬件嵌入式开发: 75764412
3、Go语言交流群:9924600
闲置域名WWW.EXAI.CN (超级人工智能)出售。