Po pierwsze, powiem wam, że zacząłem grać z Swift i nie widziałem zbyt wiele napisanego kodu, ale wszystkie tutoriale widziałem, że nie używają prywatnych, jak w niektórych innych językach i jak rozumiem, Swift ma trzy kontrole dostępu, Private
, Public
i Internal
, z Internal
jako domyślną.Dlaczego nie jest powszechne korzystanie z Prywatnych właściwości/metod w Swift
Jestem trochę zdezorientowany i pomimo tego, że ogólnie nie mam dużego doświadczenia w programowaniu, ale zrozumiałem, że w programie wszystko robisz prywatnie i tylko upubliczniasz właściwości i metody, które chcesz wystawiać na inne klasy.
od Apple Docs
Oprócz oferowania różnych poziomów kontroli dostępu, Swift zmniejsza potrzebę określenia wyraźnych poziomów kontroli dostępu przez zapewniając poziomy dostępu domyślnych dla typowych scenariuszy. Rzeczywiście, jeśli piszesz aplikację o jednym celu, , nie musisz wcale określać jednoznacznych poziomów kontroli dostępu na poziomie .
Dla mnie pozostawiając każdą nieruchomość/metodę jako domyślny (Internal
) są w zasadzie daje dostęp do innych klas do ich wartości, prawda?
Dlaczego w Swift/Cocoa rzadko widzisz korzystanie z akcesorium Private
dla nieruchomości, których nie chcesz, aby inne części programu miały dostęp?
Czy ktoś może być tak uprzejmy i wyjaśnić ogólnie koncepcję koncepcji i dlaczego zaprojektowano go w ten sposób, lub jeszcze lepiej poprawić, jeśli się mylę w założeniu, że robię powyżej, znowu nie muszę duże doświadczenie w OOP i może być mylone z pojęciem akcesorów w ogóle.
Dzięki
Aktualizacja: Dzisiaj (01/07/2016) I oglądaliśmy film # 3 Stosując MVC z kursu Developing iOS 8 Apps with Swift
oferowanych przez Stanford
Uniwersytetu w iTunes iw chwili 24:15 Paul Hegarty mówi o kontroli dostępu, bardzo polecam.
Używamy 'private'. Po prostu nie mówimy ci o tym, ponieważ jest ... cóż ... prywatny. –
Twoja intuicja do korzystania z najwęższej możliwej kontroli dostępu nadal obowiązuje, IMHO. Nie dziwię się, że fragmenty, które widzieliście w tutorialach, poświęcają ten temat krótko, ponieważ jest to problem, który pojawia się w większych praktycznych zastosowaniach. Jedyny przypadek, w którym konsekwentnie widzę używany "prywatny", to sytuacja, w której istnieje pewna wyliczona właściwość, która jest wspierana przez niektóre przechowywane właściwości, gdzie bezpośrednia interakcja z tą przechowywaną własnością jest oczywiście problematyczna: Często widzisz to oznaczone jako "prywatne". Krótko mówiąc, wielu z nas używa "prywatnego" w naszym własnym kodzie. – Rob
@Rob Czy uważasz, że dobrą praktyką byłoby uczynienie 'private' dowolną własnością, która będzie używana tylko wewnątrz klasy (zakres klasy) i pozostawić resztę jako' wewnętrzną'? W ten sposób kod będzie przynajmniej bardziej czytelny. –