クラスFoo
から別のクラスBar
にキャストする場合、変換のコードはFoo
またはBar
クラスに属している必要がありますか?変換コードはどのクラスに属していますか?
Foo f
Bar b = f.ToBar()
または:
Foo f
Bar b = Bar.FromFoo(f)
後者は、コンストラクタではなく、静的メソッドのように書き換えることができ、それはこの質問のポイントではありません。
もちろん、多くの場合、クラスの1つを変更できないと、あなたのために決定が下されます。例えば、私はカスタムクラスFoo
を持っていて、それを整数に変換したいと思っていました。
Barからは、Bar型のオブジェクトを作成するので、Barを作成するすべての方法をカプセル化するのが自然です。また、静的ファクトリメソッドを持つことは、コンストラクタを使用するよりも理にかなっています。 –
2つの可能な答えがあります。よいスタート。 – Matt
なぜコンストラクタではなく変換メソッドを作成するのですか?私の意見では、新しいBar(f)はより論理的です。 – Betlista