Objective C 语言 设计模式高级应用案例

Objective-C阿木 发布于 2025-06-29 9 次阅读


Objective-C 语言设计模式高级应用案例

设计模式是软件开发中解决常见问题的通用解决方案。在Objective-C语言中,设计模式同样扮演着重要的角色,它可以帮助开发者写出更加模块化、可复用和易于维护的代码。本文将围绕Objective-C语言,探讨几种高级设计模式的应用案例,以帮助读者更好地理解和运用这些模式。

单例模式(Singleton Pattern)

单例模式确保一个类只有一个实例,并提供一个全局访问点。在Objective-C中,单例模式常用于管理那些只需要一个实例的资源,如数据库连接、文件系统操作等。

示例代码

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;


}

- (instancetype)init {


if (self = [super init]) {


// 初始化代码


}


return self;


}

@end


观察者模式(Observer Pattern)

观察者模式定义了对象之间的一对多依赖关系,当一个对象的状态发生变化时,所有依赖于它的对象都会得到通知并自动更新。

示例代码

objective-c

@interface Observer : NSObject

- (void)updateWithMessage:(NSString )message;

@end

@interface Subject : NSObject

@property (nonatomic, strong) NSArray<Observer > observers;

- (void)notifyObserversWithMessage:(NSString )message;

@end

@implementation Subject

- (void)notifyObserversWithMessage:(NSString )message {


for (Observer observer in self.observers) {


[observer updateWithMessage:message];


}


}

@end

@implementation Observer

- (void)updateWithMessage:(NSString )message {


// 处理消息


}

@end


装饰者模式(Decorator Pattern)

装饰者模式动态地给一个对象添加一些额外的职责,而不改变其接口。在Objective-C中,装饰者模式常用于扩展对象的功能,而不需要修改原始对象。

示例代码

objective-c

@interface Component : NSObject

- (NSString )operation;

@end

@interface ConcreteComponent : Component

@end

@implementation ConcreteComponent

- (NSString )operation {


return @"ConcreteComponent operation";


}

@end

@interface Decorator : Component

@property (nonatomic, strong) Component component;

- (instancetype)initWithComponent:(Component )component;

@end

@implementation Decorator

- (instancetype)initWithComponent:(Component )component {


self = [super init];


if (self) {


_component = component;


}


return self;


}

- (NSString )operation {


return _component.operation;


}

@end


策略模式(Strategy Pattern)

策略模式定义了一系列算法,将每一个算法封装起来,并使它们可以互相替换。在Objective-C中,策略模式常用于实现算法的灵活切换。

示例代码

objective-c

@protocol Strategy <NSObject>

- (void)execute;

@end

@interface ConcreteStrategyA : NSObject <Strategy>

@end

@implementation ConcreteStrategyA

- (void)execute {


// 实现策略A


}

@end

@interface ConcreteStrategyB : NSObject <Strategy>

@end

@implementation ConcreteStrategyB

- (void)execute {


// 实现策略B


}

@end

@interface Context : NSObject

@property (nonatomic, strong) Strategy strategy;

- (void)setStrategy:(Strategy )strategy;

- (void)executeStrategy;

@end

@implementation Context

- (void)setStrategy:(Strategy )strategy {


_strategy = strategy;


}

- (void)executeStrategy {


[_strategy execute];


}

@end


总结

本文通过几个Objective-C语言的高级设计模式案例,展示了如何在实际项目中应用这些模式。设计模式是软件工程中宝贵的财富,掌握并灵活运用设计模式,能够帮助我们写出更加优秀的代码。在实际开发中,应根据具体需求选择合适的设计模式,以提高代码的可读性、可维护性和可扩展性。