[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2ch.scのread.cgiへ]
Update time : 01/01 19:50 / Filesize : 270 KB / Number-of Response : 1019
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

次世代言語25 TypeScript Swift Go Kotlin Rust Nim



391 名前:デフォルトの名無しさん mailto:sage [2022/04/30(土) 00:03:38.50 ID:UesQSoYk.net]
継承は基底クラスと派生クラスの役割(責務)の分担が非常に難しいです。
よほど上手く設計しないと、すぐに「スパゲッティ・オブジェクト・プログラム」ができあがります。
継承は実装の再利用という面があるので、得てしてコピペの代わりに使われがちでもあります。
既存のあるクラスの振る舞いをちょっとだけ変えたいから継承を使おうってやってしまうと、
派生クラスのソースを見ただけでは何をやってるのか全くわからない最悪のコードになります。
まだコピペのほうがマシなことも。

最初はちゃんとクラス階層の設計がされていたとしても、だんだん皆が使う共通ルーチンを基底クラスに持たせよう、としてしまうとか、
基底クラスは、すぐに、巨大かつ影響範囲が広すぎてイジれない「神クラス」になるでしょう。
この場合の基底クラスの役割は、グローバル変数そのものと言ってよいですね。

とにかく、継承を使うと、コピペ、グローバル変数の使用、といった「禁じ手」と実質的に同じことが簡単にできてしまいかねません。
もし継承を使うのであれば、かなり注意が必要です。

その一方で、継承でないと絶対にダメという用途もあんまりないのです。
継承を一律禁止してしまってもそんなに困らないところがあります。
そのため最近ではGoやRustなど言語の仕様として継承(インタフェースではない実装を持つクラスの継承)を禁止している言語が増えているという有り様です。






[ 続きを読む ] / [ 携帯版 ]

全部読む 前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<270KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef