私は、特定のOOP問題の構成について簡単に質問します。OOP組織の問題に最適な解決策
私にはタイルズでいっぱいの地形クラスがあります。クラスタイルの複数の派生物、すなわちドアがあります。 Doorクラスには、open()というメソッドがあり、これはドアを開き、close()はドアを閉じます。これは、これらの方法の両方が、開封および/または閉封の前に途中で何かを点検する必要があるまで完全な意味を持ちます。どのようにして、その親について知らないうちにオブジェクトのDoorチェックを行うのですか?
open()を呼び出す前に、途中で何かをチェックするのが簡単な解決策ですが、別の種類のドアをチェックする必要があるドアの種類が異なると、より高いレベルで混乱が生じます。
これは簡単な答えがあるようですが、私はこの問題をより頻繁に実行するように思われます。
ドアは非アクティブで、ハンドラが開閉し、ドアがブロック/ロックされているかどうかをチェックする必要のあるハンドラです。ドアはそれ自体について知っているだけで、環境の中の他のものについては知りません。 – slashmais
@slashmaisだから私のソリューションは正しいですか? – lowq
はい、正しく見えます - それぞれのハンドラはドアに近づく方法がそれぞれ異なるでしょう。例:ドアを開けたり開けたりすると、警官が蹴ってきます。自動化された装置がそれをやります。 – slashmais