Swift Access Control Когда использовать какие предшествующие символы для диаграммы классов - PullRequest
0 голосов
/ 01 июля 2018

Я узнал о диаграммах классов в Java раньше; Тем не менее, я хотел бы использовать их правильно и при работе со Swift. Я не ищу ничего сгенерированного автоматически, потому что хочу научиться рисовать их и быстро их читать.

В любом случае, я уверен, что для Java мы используем предыдущие символы для представления видимости переменных. (Пример изображения)

+   Public
-   Private
#   Protected
~    Package
*   Random    

Но когда дело доходит до Swift, я немного запутался, где найти правильный консенсус относительно того, какой символ использовать, когда у меня есть неявная внутренняя переменная внутри публичного класса, например, так.

public class MapTracker {
    var locationManager = CLLocationManager()
}

Swift 4.2 Документация для контроля доступа заставляет меня думать, что это тесно связано либо с Package, либо с Protected.

Есть идеи?

1 Ответ

0 голосов
/ 01 июля 2018

Как вы заметили, Java действительно отличается от Swift. :)

Swift имеет следующие модификаторы доступа, от самых доступных до наименее:

  • open
  • public
  • internal
  • fileprivate
  • private

Они все ведут себя совершенно иначе, чем их коллеги по Java (если есть). Поэтому я предлагаю не пытаться найти их эквиваленты в Java. Забудьте все, что вы знаете о Java, и попробуйте найти символы, характерные для Swift. Например, я придумал:

++    open
+     public
~     internal
-~    fileprivate
-     private

Вы также можете утверждать, что не совсем полезно отличать fileprivate от private, потому что на диаграмме классов вы не можете видеть, какие классы принадлежат каким файлам. Вы можете использовать - для них обоих.


Я нашел этот проект , который генерирует диаграмму классов вашего быстрого кода. Судя по всему, он не генерирует ничего, что указывает на модификатор доступа.

...