サーバーを呼び出したいのですが、データ (この場合は remoteIdKey) が古くなっている場合に限ります。これが私がやっている方法です:
object remoteCaller {
def getRemoteKeyId = {
// do we need to get the data from the server?
if (currentTime - lastCallTime >= 1000) {
remoteId = makeRemoteCall
lastCallTime = currentTime
}
remoteId
}
private var remoteId = 0
private def currentTime = //....
private var lastCallTime = //....
private def makeRemoteCall = { //remote call to the server to get the remote Id key}
}
問題は、remoteCaller
and の状態を変更することです。そのため、var
代わりに を使用しval
ます。また、クラスの代わりにオブジェクトを使用して、そのインスタンスのみになるようにします。
remoteCaller を不変にするにはどうすればよいですか、または機能的なスタイル (突然変異なし) にするにはどうすればよいですか?