Разработка IOS и программная инженерия.

Протоколы в Swift — важная тема, которую мы все должны понимать как разработчики и программисты. Но что такое протокол и как он вообще работает? Итак, давайте разберем все, чтобы независимо от того, программист вы или нет, вы могли полностью понять, что такое протоколы.

Сертификат

Каждый день люди сдают тесты, чтобы получить сертификаты в определенных областях обучения. Примером может служить ваш Comp Tia Security plus. Безопасность плюс сертификация сообщает всем, что вы можете полностью понять основные методы обеспечения безопасности, с которыми ежедневно сталкиваются специалисты по информационной безопасности, включая списки контроля доступа, брандмауэры, вирусы, кибератаки и другие области прямого контакта.

Начнем с создания класса Analyst.

var configure Firewall = true ~ Это будет наша переменная, логический тип данных, который хранит истинное значение.

  1. func adminTasks() ~ Затем мы объявляем функцию, которая содержит оператор if, и если переменная «configure Firewall» имеет значение true, она выполнит оператор печати, указанный ниже.
  2. func configureACL() ~ Мы объявляем другую функцию в классе Analyst с оператором печати в теле функции.

Каждая функция представляет собой действие, которое аналитики безопасности будут выполнять изо дня в день в нашем классе Analyst. Классы основаны на ссылках, поэтому мы объявим еще один класс, который будет ссылаться на класс Analyst. Теперь это даст следующему классу, мы создадим те же свойства, что и наш класс аналитика.

  1. класс sysAdmin: Analyst ~ Как мы видим, sysAdmin указан рядом с классом sysAdmin. Что это значит? Классы основаны на ссылках, поэтому объявление класса Analyst помимо класса sysAdmin позволит использовать все свойства класса Analyst.
  2. func manageServer() ~ Внутри нашей функции sysAdmin мы объявляем оператор печати, который печатает строковое значение «обслуживать оборудование».

Вы, наверное, спрашиваете себя, какое отношение классы имеют к протоколам в Swift? пожалуйста, внимательно посмотрите на следующий пример, когда мы создаем еще один класс под названием helpDesk.

Вы видите что-нибудь странное? Мы создали новый класс под названием helpDesk, и, поскольку классы основаны на ссылках, он получает все свойства, которыми обладает класс Analyst. Насколько я понимаю, персонал службы поддержки не должен иметь ролей поддержки, связанных с административными задачами безопасности!

  1. let customerSupport = helpDesk() ~ создается константа с именем «customerSupport» и ссылкой на класс «helpDesk()».
  2. customerSupport.support() ~ класс поддержки клиентов вызывает функцию поддержки и выполняет оператор печати «помощь в решении небольших проблем с компьютером».
  3. customerSupport.adminTasks() ~ константа customerSupport, которую мы позже объявили с помощью класса helpDesk, который теперь может вызывать функцию adminTasks() и выполнять оператор печати «защитить инфраструктуру». Из-за неотъемлемого свойства класса аналитика, когда мы объявили наш класс службы поддержки

Наши сотрудники службы поддержки теперь могут выполнять административные задачи, которые должен выполнять только Аналитик!

Это прекрасный пример того, почему нам нужны протоколы в языке программирования Swift. Протоколы ограничивают, кто и что может делать при использовании структур или классов. Следовательно, пользовательские ошибки и опечатки, повышающие уязвимость базы кода, менее вероятны при использовании протоколов.

Как я объяснил в начале урока, думайте о протоколах как о сертификате полномочий. Итак, чтобы упростить то, что я описываю, я хочу, чтобы каждая работа, связанная с административными задачами, была сертифицирована по безопасности и безопасности.

Давайте начнем с создания протокола под названием securityPlus, который представляет, кто является сертифицированным Security Plus.

  1. func adminTasks() ~ Любой класс, который может соответствовать протоколу securityPlus, должен иметь доступ к func adminTasks()

  • Далее мы добавим аннотацию securityPlus рядом с классом, в котором мы хотели бы использовать протокол securityPlus.
  • Наш класс Analyst теперь ограничен протоколом securityPlus, согласно которому любой, кто может выполнять задачи администратора, должен иметь сертификат secuityPlus.
  • Не волнуйтесь слишком сильно. Это может показаться большим количеством кода и, возможно, немного запутанным, но это сойдется.

Как вы можете видеть в фрагменте кода, я аннотировал две структуры в нашей кодовой базе, названные penTester и redTeamAndBlueTeam.

  • redTeamAndBlueTeam и пентестер. Но, конечно же, протоколы могут применяться и к структурам. Итак, давайте разрушим то, что делают наши структуры!

В нашей команде безопасности есть пентестер, и он также соответствует протоколу securityPlus. Мы позволяем ему выполнять административные задачи, которые предоставляет сертификат для структуры.

Затем мы создали структуру, представляющую redTeamAndBlueTeam.

Внутри нашей структуры redTeamAndBlueTeam мы создаем функцию, которая принимает параметр с именем «cert». Наш раздел dataType будет содержать плюс безопасности протокола.

Этот код строки поясняет, что redTeamAndBlueTeam разрешает только лицам с сертификатом securityPlus работать в команде и выполнять задачи администратора.

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

  1. let customerSupport = helpDesk() ~ мы объявляем константную переменную и назначаем customerSupport классу службы поддержки.
  2. let socAnalyst = Analyst() ~ мы объявляем константную переменную и назначаем socAnalyst классу Analyst.
  3. let hacker = penTester() ~ мы объявляем константную переменную и назначаем hacker структуре penTester.
  4. let Administrator = sysAdmin() ~ мы объявляем константную переменную и назначаем администратора классу sysAdmin.
  5. let CyberSecurity = redTeamAndBlueTeam() ~ мы объявляем константную переменную и назначаем CyberSecurity структуре redTeamAndBlueTeam.

cyberSecurity.defenders(certs:) ~ При выполнении и получении типа данных любых следующих константных переменных, которые мы создали, наш окончательный код блока будет разрешать только определенные классы или структуры, соответствующие securityPlus протокол, который необходимо выполнить. Если в классе или структуре нет протокола securityPlus, среда IDE выдаст ошибку и накричит на вас!

Наша многоуровневая защита и контроль доступа безопасны, что не позволяет команде поддержки клиентов выполнять административные занятия без их сертификатов безопасности и плюс! Протоколы необходимы в Swift и добавляют множество безопасных способов объявления классов и структур в программировании на Swift. Удачного кодирования!

Аккаунт Линкедин: