📑
Fragile base class問題とは
GRPCのドキュメントを読んでいたときに
You should not create your own Foo subclasses. Generated classes are not designed for subclassing and may lead to "fragile base class" problems.
という文章に遭遇した。 "fragile base class" problems というものを知らなかったので調べてみた。
Wikipedia
Wikipediaに載っているような有名な概念らしい。継承の時に起こりがちの問題のようだ。
どういうものか
継承先のサブクラスは、親クラスの変更により予期せぬ挙動を起こす。「サブクラスは親クラスの変更に脆い」という意味と解釈した。
これの問題のSolutionとしては、よほどのことがない限りクラスの宣言時にfinal
をつけ、継承できないようにするというもの。
Discussion