МА
Size: a a a
МА
МА
МА
ET
ET
Д
ET
V
ET
AO
ET
V
V
Д
ET
MessageFolder
, PostList
, CacheSettings
./NewPostUserStory
• /NewPostModule
• /Assembly
• /Interactor
• /Presenter
• /Router
• /View
• /ChooseAvatarModule
• /Assembly
• /Interactor
• /Presenter
• /Router
• /View
• - Все методы, с помощью которых слои общаются друг с другом, должны быть синхронными.
```objc
@interface InteractorInput
- (void)obtainDataFromNetwork;
...
@interface InteractorOutput
- (void)didObtainDataFromNetwork:(NSArray *)data;
...
• Все методы протоколов, которыми закрыты элементы модуля, должны начинаться с глаголов - это помогает явно указать на то, что каждый из компонентов обладает поведением, а не состоянием.- (void)obtainImageForPostId:(NSString *)postId;
• - (void)processUserInput:(NSString *)userInput;
• - (void)invalidateCurrentCache;
#import
лишь при необходимости. Пример: #import <Foundation/Foundation.h>
•
• #import "PostListViewOutput.h"
• #import "PostListModuleInput.h"
• #import "PostListInteractorOutput.h"
•
• @protocol PostListViewInput;
• @protocol PostListRouterInput;
• @protocol PostListInteractorInput;
• @class PostListViewModelMapper;
•
• @interface PostListPresenter : NSObject <PostListModuleInput, PostListViewOutput, PostListInteractorOutput>
•
• @property (nonatomic, weak) id<PostListViewInput> view;
• @property (nonatomic, strong) id<PostListRouterInput> router;
• @property (nonatomic, strong) id<PostListInteractorInput> interactor;
• @property (nonatomic, strong) PostListViewModelMapper *postListViewModelMapper;
•
• @end
ET
ET
ET
Д
ВК