- ふらっと C#,C♯,C#(初心者用) Part124 [無断転載禁止]©2ch.net
174 :デフォルトの名無しさん (ワッチョイ ebdc-HNW7)[sage]:2016/08/23(火) 11:28:03.95 ID:0RGf95YO0 - >>172
名前が悪い var s = new ShapeReader(reader).ReadShape(); これならおかしくはない もしくは上の人も言ってるようにファクトリメソッドで var s = Shape.FromStream(reader);
| - ふらっと C#,C♯,C#(初心者用) Part124 [無断転載禁止]©2ch.net
176 :デフォルトの名無しさん (ワッチョイ ebdc-HNW7)[sage]:2016/08/23(火) 12:23:20.88 ID:0RGf95YO0 - >>175
ちゃんとfactoryやるならfactory自体も抽象化した方がいいよ Func<StreamReader, Shape>(もちろんインターフェイスでもいいけど)を外から受け取るようにする そうすることで特定のファクトリメソッドがすべての派生クラスを知っている必要がなくなり、 派生クラスの追加や単体テスト時の差し替えが容易になる パブリックなライブラリでstaticなファクトリメソッドが多いのは、 その性質上ありうる派生クラスが決まっていることが多いし利用者の利便性を優先しているため アプリだと派生クラスがポコポコ増えるので考え方は違ってくる
|
|