Mam więc usługę internetową, która ma coś w rodzaju miejsca, w getAccountktórym zwróci identyfikator na konto, jeśli go dostanie, w przeciwnym razie zgłasza wyjątek. Klient zawsze będzie chciał założyć konto, jeśli zgłoszony zostanie wyjątek z tymi samymi informacjami, z którymi jest zrobione.
Tworzę wygodną bibliotekę dla klientów, którzy będą obsługiwać wszystkie wywołania usługi internetowej w środku, więc nie będą musieli wiedzieć, jak samodzielnie wykonywać połączenia.
Zastanawiam się w tej bibliotece, gdybym miał utworzyć getAccount(accountName)konto, które dostanie konto, jeśli istnieje, a jeśli nie utworzy go i nie zwróci informacji, czy to źle? Czy powinienem pozostawić klientowi obsługę wyjątków, czy po prostu nazwać coś takiego jak getOrCreateAccount? Czy to ma znaczenie?
Czy złym zwyczajem jest tworzenie czegoś w operacji get?
acquire, np acquireAccount. Nie ma on żadnego znaczenia w żadnym z głównych protokołów, które napotkałem, i ma nadrzędny pierścień, który mu dobrze pasuje. „Rób wszystko, co musisz zrobić, aby zdobyć dla mnie jeden z nich. Poproś o to, zbuduj, udawaj, ukradnij, nie obchodzi mnie to, po prostu weź mnie lub zgiń próbując”.
getSomething() jest przeznaczony dla osób pobierających i setSomething()ustawiających. Imo nic, że robi coś bardziej intelektualnego musi być nazywany coś innego, to znaczy fetchSomething, obtainSomething, computeSomething, lub doSomethingElseitd.
getOrCreateAccountlub podobnie.