-
Notifications
You must be signed in to change notification settings - Fork 23
/
Copy pathContents.swift
83 lines (68 loc) · 1.28 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
//: 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 Stock {
func sell()
func buy()
}
// 股票 A
struct StockA: Stock {
func sell() {
print("StockA 卖出")
}
func buy() {
print("StockA 买入")
}
}
// 股票 B
struct StockB: Stock {
func sell() {
print("StockB 卖出")
}
func buy() {
print("StockB 买入")
}
}
// 股票 C
struct StockC: Stock {
func sell() {
print("StockC 卖出")
}
func buy() {
print("StockC 买入")
}
}
// 基金
struct Fund {
var stockA: StockA
var stockB: StockB
var stockC: StockC
init() {
stockA = StockA()
stockB = StockB()
stockC = StockC()
}
func sellAB() {
stockA.sell()
stockB.sell()
}
func buyBC() {
stockB.buy()
stockC.buy()
}
func sellABC() {
stockA.sell()
stockB.sell()
stockC.sell()
}
func buyABC() {
stockA.buy()
stockB.buy()
stockC.buy()
}
}
let fundManager = Fund()
fundManager.buyBC()
fundManager.buyABC()
fundManager.sellAB()