Piszę API do tworzenia geometrycznych kształtów i mam pewne problemy z nazwaniem moich metod.Potrzebujesz porady na temat skutecznego nazewnictwa metod?
Weźmy prosty przypadek: Tworzenie okręgu. Większość z nas może być zaznajomiona z metodą taką jak graphics.drawEllipse(x, y, w, h)
. Aby narysować okrąg, musisz znać lewą górną współrzędną oraz szerokość i wysokość koła.
Moje API ma na celu ułatwić programistom rysowanie kształtów przy użyciu różnych informacji, bez wykonywania wielu zadań matematycznych - co jest banalne dla kręgów, ale bardziej skomplikowane dla innych kształtów. Na przykład powinieneś być w stanie narysować okrąg, biorąc pod uwagę jego współrzędne i promień środkowy, lub górną lewą i dolną prawą współrzędną.
Więc mam Circle
klasy z metod fabrycznych, takich jak:
Circle.createWithCenterAndRadius(cx, cy, r)
Circle.createWithBoundingBox(x1, y1, x2, y2)
Circle.createWithWidthAndHeight(x, y, w, h)
Czuję, że może być „zapachy kodu” tutaj, ale nie jestem pewien. Z jednej strony te metody fabryczne są z konieczności opisowe. Z drugiej strony, mogę przewidzieć, że nazwy tych metod wymykają się spod kontroli. Na przykład, jak powinienem nazwać metodę fabularną Triangle, która tworzy trójkąt, biorąc pod uwagę punkt, długość jednej strony, kąt i długość innej strony? Triangle.createWithPointSideAngleAndSide(x, y, side1, angle, side2)
? Czy to tylko zło?
Jeśli miałbyś używać tego API, czy nazwy metod byłyby w porządku dla Ciebie? Czy masz porady, w jaki sposób mogę uczynić nazwy metod bardziej rozsądnymi?
z czym się podzieliłeś? – eglasius
Zmieniam metody nazywane "od", tak jak w poście Jason. Usuwam niektóre niepotrzebne komentarze "i", za komentarz Joe_M do wpisu kevchaddera. Rozważałem twój płynny pomysł na interfejs; Używam Java, więc nie mam nazwanych parametrów. Lubię pomysł Slim'a, sprawdzając, czy jest to wykonalne. –
I, planuję kontynuację, kiedy skończę szkic mojego interfejsu API, który powinienem wkrótce. –