Movatterモバイル変換


[0]ホーム

URL:


はてなブックマークアプリ

サクサク読めて、
アプリ限定の機能も多数!

アプリで開く

はてなブックマーク

  • Twitterでシェア
  • Facebookでシェア

気に入った記事をブックマーク

  • 気に入った記事を保存できます
    保存した記事の一覧は、はてなブックマークで確認・編集ができます
  • 記事を読んだ感想やメモを書き残せます
  • 非公開でブックマークすることもできます
適切な情報に変更

エントリーの編集

loading...

エントリーの編集は全ユーザーに共通の機能です。
必ずガイドラインを一読の上ご利用ください。

タイトルガイドライン

このページのオーナーなので以下のアクションを実行できます

タイトル、本文などの情報を
再取得することができます
コメントを非表示にできますコメント表示の設定

ブックマークしました

ここにツイート内容が記載されますhttps://b.hatena.ne.jp/URLはspanで囲んでください

Twitterで共有

ONにすると、次回以降このダイアログを飛ばしてTwitterに遷移します

376usersがブックマークコメント89

    ガイドラインをご確認の上、良識あるコメントにご協力ください

    0/0
    入力したタグを追加

    現在プライベートモードです設定を変更する

    おすすめタグタグについて

      よく使うタグ

        継承はなんでダメ? - まめめも

        ガイドラインをご確認の上、良識あるコメントにご協力ください

        0/0
        入力したタグを追加

        現在プライベートモードです設定を変更する

        おすすめタグタグについて

          よく使うタグ

            はてなブックマーク

            はてなブックマークで
            関心をシェアしよう

            みんなの興味と感想が集まることで
            新しい発見や、深堀りがもっと楽しく

            ユーザー登録

            アカウントをお持ちの方はログインページ

            記事へのコメント89

            • 注目コメント
            • 新着コメント
            mrkn
            継承がダメと言われてる理由がいくつかまとめられているけど、要するに「プログラミングができない人間にプログラミングをさせている」ことが諸悪の根源で、継承は悪くないんでは?

            その他
            w1234567
            委譲じゃなくてクラスを継承して差分プログラミングするのはアンチパターンだってみんなが痛い目して気づいたんだよ。継承元が想定しない新機能追加の要件が出てきたときに設計がすぐぶっ壊れて無理が出る

              その他
              joker1007
              そもそも人間には上手いことコードを共通化する能力が無いのが問題、という気がする

                その他
                inabajunmr
                継承でめちゃくちゃになっているコードを見ると、モデル化されてる風のめちゃくちゃなコードよりもただ複雑なだけのでかい処理のがマシ、という気持ちになることが多い

                  その他
                  unmarshal
                  “AnalogClock クラスと DigitalClock クラスを派生させるとよさそう” →時計の共通機能を持つ別クラスに切出しそれをClockにDI、名前もClock→AnalogClockに変更が良いかと。このミスリードが継承機能の問題点だと個人的に思った

                    その他
                    turanukimaru
                    Abstract Clock を作って時間を計る機能を入れ、Clock extends Abstract Clock にすればいい。継承はコードを分割する言語機能で、それをコードを結合するために使うからおかしくなる。

                      その他
                      nil0303
                      もしかして皆コーティング規約で継承禁止って書いて上手く行くと思ってる...?設計学べ使い方間違えるなって話でしょ。そこがダメな人は何書かせてもダメな訳で。

                        その他
                        nunulk
                        Clock > AnalogClock とかはいいんだけど、Clock > Timer みたいなことするとダメ(になりがち)ってことだと思っていた

                        その他
                        atsushieno
                        Object > DispatcherObject > DependencyObject > Visual > UIElement > FrameworkElement > Control > ContentControl > ButtonBase > Button みたいなやつのことかー!https://web.archive.org/web/20130903122418/http://tirania.org/blog/archive/2004/Sep-01.html

                          その他
                          mak_in
                          継承はベース側がほぼ恒久的に仕様が変わらない見込みが無いと後々辛くなる。継承で実現したかったことは、実はインターフェイスの方が向いてるケースは多い。

                            その他
                            Embeddedhash
                            Thank you , it helps me alot for my research you have posted usefull information <a href="https://embeddedhash.in/embedded-systems-course-in-hyderabad/"> Embedded Systems Course in Hyderabad</a>

                              その他
                              kituneudon97
                              継承がだめな理由 - コード解読が大変 - 神クラスができやすくなる

                              その他
                              react12
                              Inheritance can lead to tightly coupled components and complex hierarchies, hindering flexibility and maintainability. Embracing composition over inheritance promotes cleaner, more modular code,easier scalability. By component composition,React fosters.https://reactmasters.in/

                              その他
                              uxlayman
                              本来、読んで字の如く拡張(extend)のための機能であるはずだが、色んな解釈(オーバーライドは特にヤバい)の余地があることで、歪みが生まれているのではないかなと。概念自体がダメとは思わないかな

                                その他
                                osiire
                                単純に密結合だからだと思う。継承先に依存した分岐が継承元で(後から)必要になると破綻し出す。継承肯定の立場だと、その破綻は後出しじゃんけん的に設計が悪い論にすぐに移行してしまうのも歴史的悪手。

                                  その他
                                  ropponzo
                                  static関数なら状態を持たないからよかったのに。

                                    その他
                                    kiyokura
                                    この手の話題を見ると"オブジェクト指向で設計"するのと、"オブジェクト指向言語の機能やそれで実装されたフレームワークを使って開発"するのは割と別の話だと自分は思ってるのだけど、世の中そうでもないんやろか

                                      その他
                                      temtan
                                      馬鹿には継承は使いこなせないというだけの話。継承は色んな単語に置き換え可能。

                                      その他
                                      quick_past
                                      再帰やGotoもだけどさ。素直に使ったほうがよっぽどバグやよみにくさを回避できる事もあると思うよ。ただし、よく考えて上手く実装すること前提だろうけど。センスない人はそれを避けても問題あるコードを書く

                                        その他
                                        a-kuma3
                                        取説を読まずに道具の文句を言ってるようにしか聞こえない

                                          その他
                                          rui010
                                          トップコメみたいなコメントが持て囃されるエンジニア界隈が気持ち悪い。

                                            その他
                                            hi-hats
                                            “「高度に共通化されたコードは読みにくい」という一般的な側面がかなり大きい” 個人的には結構な割合でこれに集約されるな

                                              その他
                                              b_taro
                                              ウマ娘の話ではなかった

                                                その他
                                                bluepost69
                                                DigitalClockクラスを作りたくなったら、Clock変数をメンバに持つDigitalClockクラスを新規に作ればよい。

                                                  その他
                                                  diveintounlimit
                                                  うーん申し訳ないけどアホっぽい話だなぁ。。。継承ゼロで構築されているライブラリやフレームワークはどれほどあるのだろうか。

                                                    その他
                                                    tomoakinagahara
                                                    時代はすでにtrait

                                                      その他
                                                      door-s-dev
                                                      is-aの関係が成り立つ時だけに使うものなのに、そうではない使い方をされる事が多いからでしょうね。"互換性を重視して、やむなく DigitalClock extends Clock で妥協する。"がまさにその例

                                                        その他
                                                        otihateten3510
                                                        今はmixin的な機能があるので、継承はする必要がほとんどない。厳密には自作クラスを継承する必要がないだけで、ライブラリなど高度に洗練された不変クラスは継承しても問題ない。これらは10年は前から言われてる。

                                                          その他
                                                          NOV1975
                                                          そもそもの話として継承が駄目という議論には前提がなさすぎるんだよなあ。FWを継承なしで作るのは馬鹿げているし、FW実装を継承前提にするのは今どきではなさすぎるとか、そういう文脈を意識しないと意味ない

                                                          その他
                                                          pmint
                                                          "変な継承をする人がいる"…ボブおじさんじゃん。SOLID原則のDは都合のいい解釈が繰り返されて、かえってまともになっているけど。"全部…に書き換えてもらう?"…そこで躊躇するのは継承使っちゃいけない人。

                                                          その他
                                                          nekoline
                                                          やっぱ読みにくい。エディタ支援があるとて

                                                            その他
                                                            work996
                                                            数年前に継承の実運用での脆さをアニメーションで解説してる動画をTwitterで見たけどあれは経験無くても大変分かりやすそうで良かった。

                                                              その他
                                                              uehaj
                                                              「メソッドの呼び出し」の単純明快さが損なわれる、に尽きる。コンポジジョンでできることを継承でするな、だね。あと機能を盛り込みすぎたクラスという存在の弊害もある。

                                                                その他
                                                                odakaho
                                                                2段3段に継承できるのがマズいと思う。親クラスくらいならまだしも、2つも3つも上の祖先なんて人間には見てられない。

                                                                  その他
                                                                  nack1024
                                                                  複雑すぎるんよなー

                                                                    その他
                                                                    srng
                                                                    javaにはメンバのsealed無いんだっけ

                                                                      その他
                                                                      tick2tack
                                                                      "すべてのメソッド呼び出しがポリモーフィックになりうる" virtualだのoverrideだのの修飾子があったほうが良いと。/ 本当に継承特有の問題なのか曖昧な話が多そうね

                                                                        その他
                                                                        kouchoubot
                                                                        継承は読みにくいなあって思ってたけど、なんかこの人の言ってる事もわかる気がするのでまたいずれ考える

                                                                          その他
                                                                          kkobayashi
                                                                          あとは多重継承でしっちゃかめっちゃかになるとか?/継承に限らず抽象化が進むほどコードは理解しにくくなるというのはあるかも

                                                                            その他
                                                                            coppieee
                                                                            そもそも継承されることを前提に基底クラスを作るのは考えることが多く難易度が高くコストがかかる。最初から継承禁止して実装したほうがシンプルですぐ作れる。

                                                                              その他

                                                                              注目コメント算出アルゴリズムの一部にLINEヤフー株式会社の「建設的コメント順位付けモデルAPI」を使用しています

                                                                              リンクを埋め込む

                                                                              以下のコードをコピーしてサイトに埋め込むことができます

                                                                              プレビュー
                                                                              アプリのスクリーンショット
                                                                              いまの話題をアプリでチェック!
                                                                              • バナー広告なし
                                                                              • ミュート機能あり
                                                                              • ダークモード搭載
                                                                              アプリをダウンロード

                                                                              関連記事

                                                                                usersに達しました!

                                                                                さんが1番目にブックマークした記事「継承はなんでダメ...」が注目されています。

                                                                                気持ちをシェアしよう

                                                                                ツイートする

                                                                                継承はなんでダメ? - まめめも

                                                                                「オブジェクト指向の継承を使うな」という主張が広まっているようです。なんでダメになったんでしょう...「オブジェクト指向の継承を使うな」という主張が広まっているようです。なんでダメになったんでしょうか。 インターネットで見かけた「継承はダメ」という主張をいくつか眺めて、友人と議論しつつ、考えてみました。 「コードが読みにくくなる」 継承があると、メソッド呼び出しが実際にどのメソッド定義を呼び出すのか字面でわからない。 デバッガを使って、親クラスのメソッドに飛んだり、子クラスに飛んだりするのを追いかけないと行けない。 つらい。という主張。 めっちゃわかる。わかるんですが、これは「高度に共通化されたコードは読みにくい」という一般的な側面がかなり大きいような。 たとえば継承の代わりに高階関数を使うと、関数呼び出しがどのクロージャに飛ぶか字面でわからなくなる。 ひどいとコールバック地獄になって何が何やらになります。 継承がことさらにまずい理由を想像すると、すべてのメソッド呼び出しがポリモーフィック

                                                                                ブックマークしたユーザー

                                                                                • kappa-kappakun2025/03/23kappa-kappakun
                                                                                • lufiabb2024/10/07lufiabb
                                                                                • techtech05212024/06/26techtech0521
                                                                                • Embeddedhash2024/04/11Embeddedhash
                                                                                • toshiharu_z2024/03/17toshiharu_z
                                                                                • yszk01232024/03/16yszk0123
                                                                                • esuji52024/02/25esuji5
                                                                                • gachakku01312024/02/24gachakku0131
                                                                                • kituneudon972024/02/17kituneudon97
                                                                                • shimbaco2024/02/17shimbaco
                                                                                • yggdra_w2024/02/13yggdra_w
                                                                                • tzmfreedom2024/02/13tzmfreedom
                                                                                • e10kg2024/02/13e10kg
                                                                                • tackun_hate2024/02/13tackun_hate
                                                                                • hintoku2024/02/13hintoku
                                                                                • react122024/02/12react12
                                                                                • uxlayman2024/02/12uxlayman
                                                                                • s_ryuuki2024/02/12s_ryuuki
                                                                                すべてのユーザーの
                                                                                詳細を表示します

                                                                                ブックマークしたすべてのユーザー

                                                                                同じサイトの新着

                                                                                同じサイトの新着をもっと読む

                                                                                いま人気の記事

                                                                                いま人気の記事をもっと読む

                                                                                いま人気の記事 - テクノロジー

                                                                                いま人気の記事 - テクノロジーをもっと読む

                                                                                新着記事 - テクノロジー

                                                                                新着記事 - テクノロジーをもっと読む

                                                                                同時期にブックマークされた記事

                                                                                いま人気の記事 - 企業メディア

                                                                                企業メディアをもっと読む

                                                                                はてなブックマーク

                                                                                公式Twitter

                                                                                はてなのサービス

                                                                                • App Storeからダウンロード
                                                                                • Google Playで手に入れよう
                                                                                Copyright © 2005-2025Hatena. All Rights Reserved.
                                                                                設定を変更しましたx

                                                                                [8]ページ先頭

                                                                                ©2009-2025 Movatter.jp