📑

Fragile base class問題とは

2022/02/03に公開

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

https://en.wikipedia.org/wiki/Fragile_base_class#:~:text=The fragile base class problem,the derived classes to malfunction.

Wikipediaに載っているような有名な概念らしい。継承の時に起こりがちの問題のようだ。

どういうものか

継承先のサブクラスは、親クラスの変更により予期せぬ挙動を起こす。「サブクラスは親クラスの変更に脆い」という意味と解釈した。

これの問題のSolutionとしては、よほどのことがない限りクラスの宣言時にfinalをつけ、継承できないようにするというもの。

参考

Discussion