外观模式Golang

外观模式

外观模式(Facade Pattern): 隐藏系统的复杂, 提供一个统一的接口, 用来访问子系统的一群接口.
这种类型的设计模式属于结构型模式,它向现有的系统添加一个接口,来隐藏系统的复杂性。

优点 和 缺点

优点:

  1. 减少系统相互依赖。
  2. 提高灵活性。
  3. 提高了安全性。

缺点:

  1. 不能很好地限制客户使用子系统类,很容易带来未知风险。
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()
}

Powered by Hexo and Hexo-theme-hiker

Copyright © 2018 - 2021 Noonde All Rights Reserved.

UV : | PV :