通过协议来实现匿名对象

举个例子,例如我们在封装数据库工具类,我们可能要会连接很多不同的数据库,例如sqlite3,mysql等。所以我们继承一个基类并不合理,但我们又要要求这些类要建立某些方法,所以可以实现匿名对象,返回一个遵守该协议的id对象。

EOCDatabaseConnection.h

@protocol EOCDatabaseConnection 
@required
- (void)connect;
- (void)disConnect;
@end
EOCDatabaseManager.h

#import 
@protocol EOCDatabaseConnection;
@interface EOCDatabaseManager : NSObject

- (id)connectionWithIdentifier:(NSString *)identifier;

@end
#import "EOCDatabaseManager.h"
#import "EOCDatabaseConnection.h"

@interface EOCDatabaseManager ()
@end

@implementation EOCDatabaseManager

- (id)connectionWithIdentifier:(NSString *)identifier
{
    //调用协议的方法
    [self connect];
    return nil;
}

/*
 *  实现协议的内容
 */
-(void)connect
{
    
}

-(void)disConnect
{
    
}

@end

你可能感兴趣的:(通过协议来实现匿名对象)