C#, C♯, C#相談室 Part98 (518レス)
上
下
前
次
1-
新
209
:
(ワッチョイ 476d-Ahcx)
2024/12/12(木)10:34
ID:m/Fq7DtI0(2/4)
AA×
[240|
320
|
480
|
600
|
100%
|
JPG
|
べ
|
レス栞
|
レス消
]
209: (ワッチョイ 476d-Ahcx) [] 2024/12/12(木) 10:34:43.14 ID:m/Fq7DtI0 鳥とペンギンだと近すぎて例えとして微妙だった 例えば「動物のリスト」のようなデータを持ち、動物には鳥のように飛べるクラス (Flyメソッドを持つ) と、トラやライオンのように走るクラス (Runメソッドを持つ) があるといった場合 動物の一覧を持つには List<IAnimal> のような型を使うと思うけど、これは合ってるよね? その上で動物によって違うアクションを行わせたいとする IAnimal側に CanFly のようなメソッドを追加していくと、例えばサルのように「道具を使う動物」が後から追加された場合、IAnimalにメソッド追加が必要になり、それはBirdなどの各クラスにも影響する Birdクラスは「道具を使う」なんてことは知らないのに、インターフェースのために CanUseTool のようなメソッドを後から追加するのは違う気がする そうするとやっぱインターフェース分離の形になりそうで、そうなると利用側で is でキャストするのが落としどころなのかと http://mevius.5ch.net/test/read.cgi/tech/1719656321/209
鳥とペンギンだと近すぎて例えとして微妙だった 例えば動物のリストのようなデータを持ち動物には鳥のように飛べるクラス メソッドを持つ とトラやライオンのように走るクラス メソッドを持つ があるといった場合 動物の一覧を持つには のような型を使うと思うけどこれは合ってるよね? その上で動物によって違うアクションを行わせたいとする 側に のようなメソッドを追加していくと例えばサルのように道具を使う動物が後から追加された場合にメソッド追加が必要になりそれはなどの各クラスにも影響する クラスは道具を使うなんてことは知らないのにインターフェースのために のようなメソッドを後から追加するのは違う気がする そうするとやっぱインターフェース分離の形になりそうでそうなると利用側で でキャストするのが落としどころなのかと
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 309 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
ぬこの手
ぬこTOP
0.031s