ある企業との面接があり、彼らは私にこの質問をしましたか?
サブクラスを設計する際に従うプロトコルは何ですか。私の答えは、サブクラスが親クラスのすべてのプロパティとメソッドを共有し、さらにサブクラスを実装するよりも独自のメソッドとプロパティを実装したい場合でした。
調べる必要がある項目のリストを教えてもらえますか?
ある企業との面接があり、彼らは私にこの質問をしましたか?
サブクラスを設計する際に従うプロトコルは何ですか。私の答えは、サブクラスが親クラスのすべてのプロパティとメソッドを共有し、さらにサブクラスを実装するよりも独自のメソッドとプロパティを実装したい場合でした。
調べる必要がある項目のリストを教えてもらえますか?
あなたの答えは良いスタートでしたが、おそらく彼らはもっと探していたでしょう:
例えば:
この場合、サブクラスは適切な解決策ですか?
親クラスの機能のどの程度がサブクラスに適していますか?
正しいレベルの粒度でサブクラス化していますか: サブクラスは「最終」ですか?継承チェーンの終わりを表すエンドポイントですか、それとも他のサブクラスが従う親クラスになる中間クラスですか?
必要なサブクラスは 1 つだけですか、それとも、親クラスの機能のさまざまな側面を反映して独自の機能を追加する複数のサブクラスが必要ですか。
新しい機能のどの側面がサブクラス自体に実装され、どの程度が他のクラスまたはサブシステムに委譲される可能性があるか。
簡単に聞こえますが、クラスとサブクラスに適切な命名プロトコルに従うことも非常に重要です。サブクラスの名前がその機能と親クラスとの関係を正しく表していることを確認してください。
調査すべき点 - GOF の本は読みにくいですが、「Head First Design Patterns」はよりアクセスしやすくなっていますが、非常に初歩的な詳細が記載されている場合もあります。Python 固有の設計書も出回っているかもしれませんが、私はそれらに精通していません。
関連するテーマは次のとおりです。
*) 継承
*) オブジェクトの構成/委譲 vs 継承
*) 抽象クラス/インターフェース