外观模式
外观模式(Facade Pattern): 隐藏系统的复杂, 提供一个统一的接口, 用来访问子系统的一群接口.
这种类型的设计模式属于结构型模式,它向现有的系统添加一个接口,来隐藏系统的复杂性。
优点 和 缺点
优点:
- 减少系统相互依赖。
- 提高灵活性。
- 提高了安全性。
缺点:
- 不能很好地限制客户使用子系统类,很容易带来未知风险。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45
| type Shape interface { Draw() }
type Circle struct { radius float64 }
func (c Circle) Draw() { fmt.Println("Draw a circle:", c.radius) }
type Rectangle struct { length float64 width float64 }
func (r Rectangle) Draw() { fmt.Printf("Draw a rectangle length:%f,width:%f", r.length, r.width) }
type Square struct { width float64 }
func (s Square) Draw() { fmt.Printf("Draw a square:%f", s.width) }
type ShapeMaker struct { circle Circle rectangle Rectangle square Square }
func (maker ShapeMaker) DrawCircle() { maker.circle.Draw() } func (maker ShapeMaker) DrawRectangle() { maker.rectangle.Draw() } func (maker ShapeMaker) DrawSquare() { maker.square.Draw() }
|