-
Notifications
You must be signed in to change notification settings - Fork 23
/
Copy pathContents.swift
94 lines (75 loc) · 1.6 KB
/
Contents.swift
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
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
//: Playground - noun: a place where people can play
// Powered by https://maimieng.com from https://github.com/kingcos/Swift-X-Design-Patterns
import UIKit
// 协议
protocol PersonBuilder {
func buildHead()
func buildBody()
func buildLeftArm()
func buildRightArm()
func buildLeftLeg()
func buildRightLeg()
func createPerson()
}
// ThinPerson 遵守协议
struct ThinPerson: PersonBuilder {
func createPerson() {
buildHead()
buildBody()
buildLeftArm()
buildRightArm()
buildLeftLeg()
buildRightLeg()
}
func buildHead() {
print(#function)
}
func buildBody() {
print(#function)
}
func buildLeftArm() {
print(#function)
}
func buildRightArm() {
print(#function)
}
func buildLeftLeg() {
print(#function)
}
func buildRightLeg() {
print(#function)
}
}
// FatPerson 遵守协议
struct FatPerson: PersonBuilder {
func createPerson() {
buildHead()
buildBody()
buildLeftArm()
buildRightArm()
buildLeftLeg()
buildRightLeg()
}
func buildHead() {
print(#function)
}
func buildBody() {
print(#function)
}
func buildLeftArm() {
print(#function)
}
func buildRightArm() {
print(#function)
}
func buildLeftLeg() {
print(#function)
}
func buildRightLeg() {
print(#function)
}
}
let pA = ThinPerson()
pA.createPerson()
let pB = FatPerson()
pB.createPerson()