2016-06-15 2 views
0

Мне интересно, какова цель написания расширений для класса, который вы уже можете добавить?Быстрые расширения

Например, в Ray Wenderlich's AlamoFire учебнике

Он имеет класс ViewController, но он пишет расширение для этого ViewController для своих сетевых функций и UIImagePickerControllerDelegate методов. Единственная причина, по которой он пишет расширения, состоит в том, чтобы разделить код на логические биты?

Это обычная практика или только личное предпочтение?

ответ

4

Это то, что делает Apple. Если вы посмотрите на код (скажем, структуру Array), вы увидите, что каждое соответствие протоколу инкапсулировано внутри расширения.

Единственная разница в том, что ваш код лучше разделен. Но это действительно зависит от вас.

2

Я не уверен, что это обычная практика, но я знаю, что я делаю это, потому что он создает разделенный код. Если вам что-то нужно, просто перейдите к назначенному расширению. Однако я считаю, что это личное предпочтение.

1

Одно использование не упомянуто: добавление в исходный код у вас нет доступа.

0

Это соглашение, один, который лично следует Apple.

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

В частности, создание расширений для разделения согласований протоколов делает ваш код более читаемым. Он служит аналогичной цели, как макрос препроцессора #pragma mark в Objective-C.

Смежные вопросы