5

私はGrailsが初めてです。指定した 2 つの入力値に基づいてパーセンテージ (0 ~ 100%) を計算できる再利用可能な関数を作成したいと考えています。これをドメインとコントローラー間で再利用できるようにしたいのですが、この関数をどこに配置すればよいかわかりません。

これが私のコードです:

def calcPercentComplete(hoursComp, hoursReq) {
  def dividedVal = hoursComp/hoursReq
  def Integer result = dividedVal * 100

  // results will have a min and max range of 0 - 100.
  switch(result){
    case{result > 100}:
      result = 100
      break

    case {result <= 0}:
      result =  0
      break

    default: return result
  }

}

これを実装するためのベストプラクティスについて誰かアドバイスがありますか? ありがとう!

4

1 に答える 1

6

あなたがクラス(例えばと呼ばれるTimeUtils.groovy)を書いてそれを入れるならsrc/groovy/utils

次に、これを静的メソッドとして実行するものを追加します。

package utils

class TimeUtils {
  static Integer calcPercentComplete(hoursComp, hoursReq) {
    Integer result = ( hoursComp / hoursReq ) * 100.0
    result < 0 ? 0 : result > 100 ? 100 : result
  }
}

これで、次の電話をかけることができるはずです。

def perc = utils.TimeUtils.calcPercentComplete( 8, 24 )

コードのどこからでも

于 2012-09-20T13:02:42.183 に答える