Что я борется с созданием неизменяемого объекта с шаблоном строителя в ObjC. Скажем, у меня есть пользовательский объект со следующими свойствами:Как создать неизменяемый объект вместе с шаблоном Builder в ObjC?
- имя
- фамилии
Для обеспечения неизменности я предлагаю следующий код:
@protocol User
@property (nonatomic, strong, readonly) NSString *const firstName;
@property (nonatomic, strong, readonly) NSString *const lastName;
@end
@interface User: NSObject<User>
- (instancetype)initWithFirstName:(NSString *)fName withLastName:(NSString *)lName;
@end
@implementation User
@synthesize firstName;
@synthesize lastName;
- (instancetype)initWithFirstName:(NSString *)fName withLastName:(NSString *)lName
{
NSParameterAssert(fName);
NSParameterAssert(lName);
if (self = [super init]) {
self->firstName = [fName copy];
self->lastName = [lName copy];
}
return self;
}
@end
То, что я на самом деле борется с тем, как реализовать Builder для этого неизменяемого объекта?
Полезные ссылки на Builder: