Jaki jest dobry sposób nazwania metody sprawdzającej, czy X musi zostać wykonane, i czy X to w razie potrzeby?
Na przykład, jak nazwać metodę aktualizującą listę użytkowników, jeśli zalogują się nowi użytkownicy? UpdateListIfNeeded
wydaje się zbyt długi, a prosty UpdateList
oznacza, że za każdym razem wykonywana jest prawdopodobnie droga i niepotrzebna operacja. EnsureListUpdated
jest również wariantem.
C # ma bool TryXXX(args, out result)
wzorzec (np. int.TryParse(str, out num)
), Aby sprawdzić, czy X jest możliwy i zrobić to, ale to jest nieco inne.
RefreshUserList()
w czasieLoginUser()
iLogoutUser()
, a nie w ciągu, powiedzmyGetUser()
(gdzie lista powinna być na bieżąco już), a następnie przez wszystkich środków poniżej stosuje się rada.Odpowiedzi:
Zwykle używam
Ensure
. Ma to znaczenie upewnienia się, że coś zostało załatwione, jednak należy to zrobić. Jeśli jest już w porządku, po prostu sprawdź i gotowe. W przeciwnym razie zrób to. Tak czy inaczej, po prostu upewnij się, że zostanie to zrobione .źródło
Moje preferencje to
UpdateList
. Jeśli nic nie trzeba robić, niech tak będzie. Koszt i tak zawsze powinien być minimalizowany, więc jeśliUpdateList
robi się więcej niż to konieczne, coś jest nie tak z jego implementacją.Zasadniczo jest to czasownik, który mówi ci, co powinna zrobić metoda.
CalculateX
powinien zawsze ponownie obliczać X.GetY
powinien zawsze zwracać Y, ale wykonuj pracę tylko w razie potrzeby. Podobnie,UpdateZ
prosi o aktualizację Z, zakładając, że jest to wykonane w najbardziej wydajny sposób.źródło
Nazywaj mnie „Może”
Co-opted z fragmentów Haskell, które widziałem, spróbuj
źródło