Zasadniczo nie ma różnicy (z wyjątkiem zarezerwowanego identyfikatora "wartość" w setera).
Programy pobierające i ustawiające są wewnętrznie tłumaczone na standardowe metody, tak aby środowisko wykonawcze nie miało pojęcia, czy jakiś program pobierający lub ustawiający jest powiązany z określoną właściwością. Określenie cukier syntaktyczny jest często stosowane w takich konstruktach wygody.
Jednak istnieje ważna zaleta inżynierii oprogramowania: Twój kod jest łatwiejszy do zrozumienia, jeśli ograniczysz się do używania modułów pobierających i ustawiających z semantyką "pobierz i ustaw". To znaczy. wykonuj tylko kroki niezbędne do zapewnienia odpowiedniej właściwości.
Powszechnie stosowanym przypadkiem do wykonania dodatkowej pracy jest na przykład ustawienie lub uzyskanie właściwości, która nie jest bezpośrednio poparta przez pole członka. Na przykład masz klasę, która zawiera wartość reprezentującą odległość. Twoja klasa może zapewnić dwie właściwości: Kilometry i mile z odpowiednimi ustawieniami i pobierającymi. Następnie można wykonać proste konwersje w jednej parze i zapisać się, aby zapisać wartość dwukrotnie.
Ogólną zasadą jest, że nie należy umieszczać kodu w pobierającym, który ma efekty uboczne. Ponadto, jedynym efektem ubocznym, który powinien mieć koder w ustawieniu, jest zmiana stanu w obiekcie, do którego odnosi się nastawnik.
+1 za wywoływanie go jako linii pomocniczych zamiast reguł - na przykład leniwego ładowania LUB mapper zazwyczaj narusza wiele z tych wytycznych. –
Absolutnie wszystko jest względne - stosuje się tylko wtedy, gdy ma zastosowanie. –
Łącze dostarczone przez @ChrisBallance zwraca 404. Działającym linkiem do wytycznych Billa Wagnera jest [tutaj] (http://www.srtsolutions.com/properties-vs-methods). +1 dla tego linku, Chris. –