MST

星途 面试题库

面试题:Objective-C 中适配器模式的基本实现

请用Objective-C代码实现一个简单的适配器模式示例,假设已有一个旧的类`OldClass`,它有一个方法`oldMethod`,现在需要创建一个适配器类`Adapter`,让它适配`OldClass`,使得新的系统能够通过`Adapter`的`newMethod`方法调用到`OldClass`的`oldMethod`方法,并简要说明适配器模式在此场景中的作用。
44.5万 热度难度
编程语言Objective-C

知识考点

AI 面试

面试题答案

一键面试
// 旧类
@interface OldClass : NSObject
- (void)oldMethod;
@end

@implementation OldClass
- (void)oldMethod {
    NSLog(@"This is the old method.");
}
@end

// 适配器类
@interface Adapter : NSObject
- (void)newMethod;
@end

@implementation Adapter {
    OldClass *_oldClass;
}

- (instancetype)init {
    self = [super init];
    if (self) {
        _oldClass = [[OldClass alloc] init];
    }
    return self;
}

- (void)newMethod {
    [_oldClass oldMethod];
}
@end

适配器模式在此场景中的作用:

  1. 复用已有代码:通过适配器模式,可以复用OldClass中现有的oldMethod方法,无需对OldClass进行修改,避免引入新的错误或破坏原有的功能。
  2. 解耦新旧系统:新系统通过AdapternewMethod方法调用OldClass的功能,使得新系统与旧系统解耦,新系统不需要了解OldClass的具体实现细节,只需要调用Adapter提供的接口即可,增强了系统的可维护性和可扩展性。
  3. 接口适配Adapter将旧接口(oldMethod)适配成新系统期望的接口(newMethod),解决了接口不兼容的问题,使得新旧系统能够协同工作。