вівторок, 6 жовтня 2015 р.

Трошки про патерни

Забігаючи на перед, ось стаття на основі якої я хочу написати цей пост.

MVC - (Model - View- Controller)  -
Модель - містить в собі набір даних, які на даний момент показуються або задіяні на View
View - відповідає за візуальний показ даних, які беруться з моделі, а також за можливість маніпулювання юзером з цими даними.
Контроллер - координує зв'язок між моделлю та view, маніпулює з моделями обробляючи сигнали, які приходять з view.

Singleton - (Одинак)
В назві своїй, несе основну відповідь, в самому додатку буде створена лише одна копія цього класу. Яскравими прикладами є
[NSUserDefaults standardUserDefaults][UIApplication sharedApplication][UIScreen mainScreen][NSFileManager defaultManager]
Приклад

- (instancetype) sharedInstance {

static MyClass * _sharedInstance = nil;
static dispatch_once_t onceDispatchCall;

dispatch_once(& onceDispatchCall, ^{
_sharedInstance = [[MyClass alloc]init];
});

return _sharedInstance;
}

Проблемними місцями є тестування таких класів, в плані підстановки Моків замість реальних об'єктів, а також те що напряму не видно,  що при додаванні його в хедери, якщо не знаєш, що це сінглетон, то важко побачити пряму залежність від нього.


Фасад 
Патерн який служить для того,  щоб заховати від користувача більшість методів і залишити лише ті, які дійсно йому треба, при цьому при зміні внутрішньої архітектури і логіки при необхідності, користувач не помітить різниці і йому не треба буде переписувати свою логіку і оновлювати свої методи.


Декоратор - альтернатива наслідуванню, коли вам треба розширити клас до якого застосовується декоратор

  1. Категорії
  2. Делегати



Немає коментарів:

Дописати коментар