私は、そのプロパティの1つとしてTimerDisplayオブジェクトを持つTimerオブジェクトを持っているとします。私はTimerDisplayオブジェクト内の更新(時間、分、秒)メソッドを使用している場合は、(もしあれば)次のうちどれが良い習慣です:複合オブジェクトでは、親オブジェクトと子オブジェクトに共通する機能はほとんど同じですか?
- は中updateDisplay(時間、分、秒)メソッドを持っています私は道で、OOを始めている
TimerDisplay
私は、そのプロパティの1つとしてTimerDisplayオブジェクトを持つTimerオブジェクトを持っているとします。私はTimerDisplayオブジェクト内の更新(時間、分、秒)メソッドを使用している場合は、(もしあれば)次のうちどれが良い習慣です:複合オブジェクトでは、親オブジェクトと子オブジェクトに共通する機能はほとんど同じですか?
TimerDisplay
(パブリック属性は、ほとんどの時間をしているとして)timer.timerDisplayへの直接アクセスは悪いアイデアのように聞こえるで
感謝。タイマークラスをtimerDisplayとのコミュニケーションに気にかけたくない場合は、timerDisplayをタイマーのプロパティにするのはなぜですか?ちょうどタイマーを更新している同じ人が自分自身のディスプレイを所有している。
一方、Timerクラスでディスプレイの更新を管理する場合は、1つのディスプレイのみを管理するように制限することはその良いことにはならない。なぜディスプレイのリストを通知し続けるのではないでしょうか?タイマーにこのような通信をさせることを選択した場合、Timer.updateメソッドの後ろにそれを隠すことは、少なくとも最善の音を出します。あなたはタイマーに似すぎメソッドを持つTimerDisplayが気に入らない場合はさておき、おそらくあなたはtimer.getHours()などを使用して代わりの通過
TimerDisplay.updateFrom(timer)
のような簡単な方法を使用することができるよう
毎回多くのパラメータが必要です。
最後に、問題の複雑さによっては、両方のクラスを1つのクラスに融合させるだけでなくなる可能性があります。それはモジュール化されていませんが、シンプルさもその美徳を持っています。