Для работы со свойствами - используем dot notation синтаксис (это единство подхода).
При переопределении setter/getter и внутри init-метода - используем синтаксис с подчеркиванием.
Если блок находится во владении класса (retained). Например объект хранит свойство - блок.
Объект который владеет блоком - в этом случае и происходит захват self
- внутри блока и происходит retain cycle (цикла владения)
.
S - Single responsibility principle - Принцип единственной обязанности:
На каждый класс должна быть возложена одна-единственная обязанность.
O - Open/closed principle - Принцип открытости/закрытости:
Программные сущности должны быть открыты для расширения, но закрыты для изменения.
CALayer — это контейнер для битмапа изображения (bitmap image).
Когда UIView отрисовывается в методе drawInRect: он создает битмап для своего слоя (layer).
Остальные переменные слоя (многие взяты из представления, такие как frame и backgroundColor) указывают
как и где это изображение находится на экране. Но основная часть слоя (с точки зрения использования памяти)
https://habrahabr.ru/post/129557/
UIViewController согласно шаблону проектирования MVC обеспечивает взаимосвязь