none
ICloneable はいらない子? RRS feed

  • 質問

  • クラスか構造体かの選択 の続きで、またまた .NET のクラスライブラリ設計 に関する話題を質問させて頂きます。<(_ _)>

    ただいま .NET のクラスライブラリ設計  を大変興味深く読み進めている訳ですが、またまた引っかかる記述を見つけました。

    P225 8.5章 ICloneable の項ですが、いきなり DO NOT (してはいけない) として

    ICloneable を実装してはいけません。

    もうひとつ

    パブリックな API に ICloneable を使用してはいけません。

    とあります。
    KRZYSZTOF CWALINA のコラムにも

    このストーリーの教訓は、インターフェイスの実装および使用コードの両方がない限り、インターフェイスを提供すべきでないということです。・・・.NET Framework の出荷時に使用するコードがありませんでした。(以下略)

    とありますが、これって要するに ICloneable は

    いらない子

    だったのですか?
     
    2010年1月7日 5:48
    モデレータ

回答

  • 著者の1人の約6年前のブログをみると、そんな感じですね。
    http://blogs.msdn.com/brada/archive/2004/05/03/125427.aspx

    的を得ていない例かもしれませんが、「牛肉を買ってくる」というインターフェイスの仕様に、「モーと鳴いていてもいい」と書いているようなものじゃないでしょうか。普通は牛を買ってこられても困るのに。
    (うまいこと言おうと、一生懸命考えました)

    それなのにインターフェイスが残ってる理由(Obsolete になっていない理由)は、リンク先に反対意見として書かれていることに尽きると思います。

    2010年1月7日 10:15

すべての返信

  • 著者の1人の約6年前のブログをみると、そんな感じですね。
    http://blogs.msdn.com/brada/archive/2004/05/03/125427.aspx

    的を得ていない例かもしれませんが、「牛肉を買ってくる」というインターフェイスの仕様に、「モーと鳴いていてもいい」と書いているようなものじゃないでしょうか。普通は牛を買ってこられても困るのに。
    (うまいこと言おうと、一生懸命考えました)

    それなのにインターフェイスが残ってる理由(Obsolete になっていない理由)は、リンク先に反対意見として書かれていることに尽きると思います。

    2010年1月7日 10:15
  • お付き合い頂き誠にありがとうございます。<(_ _)>

    > 著者の1人の約6年前のブログをみると、そんな感じですね。
    > http://blogs.msdn.com/brada/archive/2004/05/03/125427.aspx

    なるほど・・・そんな前から議論されていたのですねw
    Google 翻訳してみてコメントのイメージはなんとなく伝わってきた感があります。
    翻訳がアレなので、なんとな~くのイメージですが、
    ざっと見るに Obselete や廃止賛成派が多いながらも、今更梯子を外されても困るとか、いや使えるよという意見もあるという感じでしょうか。


    現在脳内で二次翻訳?しながら読み進めてますが、.NET 開発チームの本音がところどころ垣間見えて、なかなか楽しい内容になってますね。
    私はこれだと思う本は何回も繰り返し読む人ですが、やっと第一周読み終えました。これから第二周に入ります。(-ω-)
    他にも幾つか???というところがあるので、それはそれで別スレを立てようかと考えてます。

    あと巻末の参考文献見てたら オブジェクト指向のこころ が載ってましたが、この本は リファクタリング に並ぶ名著だと思っているだけに、なんか嬉しくなりました。(^ω^)

    2010年1月7日 15:26
    モデレータ