Pocoフレームワークをじっと見ていました。すでに Poco フレームワークを使用しており、その一部を抽象化してさらに簡単にする別の基礎となるフレームワークがあります。
簡単なシナリオで問題を説明したいと思い
ます。プログラムに長方形のオブジェクトがあるとします。シェイプには内部にプライベートhit Testing
メソッドがあり、ヒット テストで一定時間 true になった場合、別のクラス、つまり自分のFountain
クラスで関数を起動する必要がありました。
Fountation
クラス内の関数に形状の特定のオブジェクト情報を渡す必要はありません。私のフレームワークはすでに と のいくつかの機能を提供していNotifyEvent
ますAddListener
。このアプローチをとっていたら、シェイプ クラス内にイベントがあり、Add Listener
(シェイプが渡された場合はオブジェクト) によってファウンテンにサブスクライブされ、シェイプ クラス内からイベントが通知されます。
さて、Poco 通知センターでは、シェイプ オブジェクトの参照を Foundation クラスに渡す代わりにNotificationCenter
、2 番目のクラスに参照を渡します。クラスにはfountain
オブザーバーがあり、オブザーバーは形状から通知を受けpostNotification()
ます。ここで 2 つのアプローチの唯一の違いは、特定のオブジェクト情報を渡さないことです。
私は、可能な限り適切なコーディング プラクティスを学ぼうとしている初心者の開発者であり、ここでのデカップリングについては明確ではありません。ここで 2 つのクラスはどのように分離されていますか? (オブジェクトを渡さず、shape
オブジェクトを使用しているだけなのでnotificationcenter
?)
編集:上記の質問に追加します。特定の通知をリッスンする必要がある他の 10 個のクラスがあるとしますNotification Center
。これらすべてのクラスにも の参照を渡す必要がありますか? そうすれば、クラスの通知センターにオブザーバーを追加できるのは私だけです。