web-dev-qa-db-ja.com

「必要に応じてXを実行する」メソッドの命名

Xを実行する必要があるかどうかをチェックし、必要に応じてXを実行するメソッドに名前を付けるための良い方法は何ですか?

たとえば、新しいユーザーがログインした場合にユーザーリストを更新するメソッドに名前を付ける方法は? UpdateListIfNeededは長すぎるように見えますが、単純なUpdateListは毎回高価で不必要な操作が行われることを意味します。 EnsureListUpdatedもバリアントです。

C#には、Xが可能であるかどうかを確認するためのbool TryXXX(args, out result)パターン(たとえばint.TryParse(str, out num))があり、それを行いますが、微妙に異なります。

24
dbkk

Ensureを使用する傾向があります。これは、何かが確実に処理されることを確認するという意味を持っていますが、実行する必要があります。すでに問題がない場合は、確認するだけで完了です。それ以外の場合は、それを行います。どちらの方法でも、それが確実に完了するです。

27
Mason Wheeler

私の好みはUpdateListです。何もする必要がない場合は、そうします。いずれにしても、費用は常に最小限に抑える必要があるため、UpdateListが必要以上のことを行っている場合、その実装に問題があります。

基本的に、メソッドが何をすべきかを伝えるのは動詞です。 CalculateXは常にXを再計算する必要があります。GetYは常にYを返す必要がありますが、必要な場合にのみそれを取得する作業を行います。同様に、UpdateZは、可能な限り最も効率的な方法で行われたと想定して、Zの更新を要求します。

13
Matt S

よかったら電話してね"

私が見たHaskellスニペットからコプトしました、試してください

UpdateListMaybe();
2
Mark Canlas