パターンを拡張しようとはしません(ラップします)が、パターンクラスが最終的な理由を知りたいですか?
つまり、このクラスは最大の用途に拡張できるということですが、彼らはそれを最終的なものにすることを選択しました。なんで ?
私がそれを尋ねると、それは「Javaはとても悪い」方法よりも技術的な(好奇心が強い?)方法です。
サブクラス化されるように設計されていないため、final
特に拡張できないようにするためです。Pattern
インスタンスは不変でスレッドセーフです。独自のサブクラスを作成した場合、どちらも保証されませんPattern
。
そしてもちろん、非常に重要な効果的なJavaの引用:
項目17:相続のための設計と文書化、または相続を禁止する