回答編集履歴

5

訂正

2020/06/23 14:16

投稿

退会済みユーザー
test CHANGED
@@ -40,13 +40,19 @@
40
40
 
41
41
 
42
42
 
43
- class Hoge: Beep {
43
+ class Base {
44
44
 
45
+
46
+
45
- var value: Int = 10
47
+ var value: Int = 5
46
48
 
47
49
 
48
50
 
51
+ }
52
+
49
53
 
54
+
55
+ class Hoge: Base, Beep {
50
56
 
51
57
 
52
58
 
@@ -54,11 +60,7 @@
54
60
 
55
61
 
56
62
 
57
- class Fuga: Beep {
63
+ class Fuga: Base, Beep {
58
-
59
-
60
-
61
- var value: Int = 5
62
64
 
63
65
 
64
66
 
@@ -72,6 +74,10 @@
72
74
 
73
75
 
74
76
 
77
+ var beep1: Beep = Hoge()
78
+
79
+
80
+
75
81
  var beep: Beep = Hoge()
76
82
 
77
83
 
@@ -80,7 +86,7 @@
80
86
 
81
87
 
82
88
 
83
- print(beep.value) // => 10
89
+ print(beep.value) // => 5
84
90
 
85
91
 
86
92
 

4

訂正

2020/06/23 14:16

投稿

退会済みユーザー
test CHANGED
@@ -103,3 +103,5 @@
103
103
 
104
104
 
105
105
  protocolにプロパティを宣言して、プロトコルに従ってクラスに実装するだけですけど。
106
+
107
+ ご自身で調べられてはいかがですか?

3

訂正

2020/06/23 13:59

投稿

退会済みユーザー
test CHANGED
@@ -15,6 +15,12 @@
15
15
 
16
16
 
17
17
  protocol Beep {
18
+
19
+
20
+
21
+ var value: Int { get set }
22
+
23
+
18
24
 
19
25
  func beep()
20
26
 
@@ -36,11 +42,25 @@
36
42
 
37
43
  class Hoge: Beep {
38
44
 
45
+ var value: Int = 10
46
+
47
+
48
+
49
+
50
+
51
+
52
+
39
53
  }
40
54
 
41
55
 
42
56
 
43
- class Fuga: Beep {
57
+ class Fuga: Beep {
58
+
59
+
60
+
61
+ var value: Int = 5
62
+
63
+
44
64
 
45
65
  func beep() {
46
66
 
@@ -60,6 +80,10 @@
60
80
 
61
81
 
62
82
 
83
+ print(beep.value) // => 10
84
+
85
+
86
+
63
87
  beep = Fuga()
64
88
 
65
89
 
@@ -68,4 +92,14 @@
68
92
 
69
93
 
70
94
 
95
+ print(beep.value) // => 5
96
+
97
+
98
+
99
+
100
+
71
101
  ```
102
+
103
+
104
+
105
+ protocolにプロパティを宣言して、プロトコルに従ってクラスに実装するだけですけど。

2

訂正

2020/06/23 13:59

投稿

退会済みユーザー
test CHANGED
@@ -6,7 +6,7 @@
6
6
 
7
7
  説明は得意じゃないので適当ですが、こんなんどうでしょうか?
8
8
 
9
- パタンは色々あるので調べてみて
9
+ パタンは色々あるので、もっといい説明がごろごろ転がってるので調べてみて
10
10
 
11
11
 
12
12
 

1

訂正

2020/06/23 08:06

投稿

退会済みユーザー
test CHANGED
@@ -1 +1,71 @@
1
1
  プロトコル指向にしてみたらどうですか
2
+
3
+
4
+
5
+ ---
6
+
7
+ 説明は得意じゃないので適当ですが、こんなんどうでしょうか?
8
+
9
+ パタンは色々あるので調べてみて・
10
+
11
+
12
+
13
+ ```swift
14
+
15
+
16
+
17
+ protocol Beep {
18
+
19
+ func beep()
20
+
21
+ }
22
+
23
+
24
+
25
+ extension Beep {
26
+
27
+ func beep() {
28
+
29
+ print("Beeep")
30
+
31
+ }
32
+
33
+ }
34
+
35
+
36
+
37
+ class Hoge: Beep {
38
+
39
+ }
40
+
41
+
42
+
43
+ class Fuga: Beep {
44
+
45
+ func beep() {
46
+
47
+ print("fugaBeeep")
48
+
49
+ }
50
+
51
+ }
52
+
53
+
54
+
55
+ var beep: Beep = Hoge()
56
+
57
+
58
+
59
+ beep.beep() // => Beeep
60
+
61
+
62
+
63
+ beep = Fuga()
64
+
65
+
66
+
67
+ beep.beep() // => fugaBeeep
68
+
69
+
70
+
71
+ ```