您好,登錄后才能下訂單哦!
Objective-C 中使用設計模式與其他編程語言類似,可以通過創建類、接口、協議等來實現不同的設計模式。常見的設計模式包括單例模式、工廠模式、觀察者模式、代理模式等。
以下是使用設計模式的示例:
@interface Singleton : NSObject
+ (instancetype)sharedInstance;
@end
@implementation Singleton
+ (instancetype)sharedInstance {
static Singleton *instance = nil;
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
instance = [[self alloc] init];
});
return instance;
}
@end
@interface ShapeFactory : NSObject
+ (id)createShapeWithType:(NSString *)type;
@end
@implementation ShapeFactory
+ (id)createShapeWithType:(NSString *)type {
if ([type isEqualToString:@"Circle"]) {
return [[Circle alloc] init];
} else if ([type isEqualToString:@"Square"]) {
return [[Square alloc] init];
} else {
return nil;
}
}
@end
@protocol ObserverProtocol <NSObject>
- (void)update;
@end
@interface Subject : NSObject
@property (nonatomic, strong) NSMutableArray<id<ObserverProtocol>> *observers;
- (void)addObserver:(id<ObserverProtocol>)observer;
- (void)notifyObservers;
@end
@implementation Subject
- (instancetype)init {
self = [super init];
if (self) {
_observers = [NSMutableArray array];
}
return self;
}
- (void)addObserver:(id<ObserverProtocol>)observer {
[self.observers addObject:observer];
}
- (void)notifyObservers {
for (id<ObserverProtocol> observer in self.observers) {
[observer update];
}
}
@end
@protocol PrinterDelegate <NSObject>
- (void)printMessage:(NSString *)message;
@end
@interface Printer : NSObject
@property (nonatomic, weak) id<PrinterDelegate> delegate;
- (void)print;
@end
@implementation Printer
- (void)print {
[self.delegate printMessage:@"Hello, World!"];
}
@end
以上是一些常見的設計模式在 Objective-C 中的實現示例,開發者可以根據具體需求選擇合適的設計模式來提高代碼的可維護性和靈活性。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。