teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

2

追記

2020/09/11 03:08

投稿

fana
fana

スコア12207

answer CHANGED
@@ -11,7 +11,7 @@
11
11
 
12
12
  なんて話にはならない.
13
13
 
14
- ●Noであれば,「墓地にカードを加える処理」というのは,「その他の対象にカードを加える処理」とは別の実装がされているということであり,
14
+ ●Noであれば,「墓地にカードを加える処理」というのは,「その他の対象にカードを加える処理」とは別の実装がされているということ(Position型.AddCard()を呼ぶのはなく,墓地型.AddCard()を呼ぶコードになっている)であり,
15
15
  であれば,「墓地」とその他に共通のインタフェースを持たせる必要性は無い.
16
16
  「墓地」とその他は,その内部で具体実装において,ある共通のコードを利用するかもしれないが,それだけの関係.
17
17
  そういった「あるコードを使い回す手段」として「継承」を用いる必要はないし,用いるべきでもないと思う.

1

補足追記

2020/09/11 03:08

投稿

fana
fana

スコア12207

answer CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  > カードを追加、カードを取り除く、その場所のカードを取得等
4
4
 
5
- の処理というのは,
5
+ の処理(e.g. 「墓地」や「山札」や「手札」のAddCard()メソッドを呼ぶ側の処理)というのは,
6
6
  「墓地」とその他(山札とか)を,区別せずに扱う実装(すなわち,Position型への操作としての実装)が成されるのでしょうか?
7
7
 
8
8
  ●Yesであれば,「墓地」とその他は同一のインタフェースでなければ困るわけだし,「カードを追加」を行う場所では「対象が「墓地」なのか違うのか」を知らないハズなのだから,