美文网首页
通过协议来实现匿名对象

通过协议来实现匿名对象

作者: Fight_Code | 来源:发表于2018-01-30 15:53 被阅读7次

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

    EOCDatabaseConnection.h
    
    @protocol EOCDatabaseConnection <NSObject>
    @required
    - (void)connect;
    - (void)disConnect;
    @end
    
    EOCDatabaseManager.h
    
    #import <Foundation/Foundation.h>
    @protocol EOCDatabaseConnection;
    @interface EOCDatabaseManager : NSObject
    
    - (id<EOCDatabaseConnection>)connectionWithIdentifier:(NSString *)identifier;
    
    @end
    
    #import "EOCDatabaseManager.h"
    #import "EOCDatabaseConnection.h"
    
    @interface EOCDatabaseManager ()<EOCDatabaseConnection>
    @end
    
    @implementation EOCDatabaseManager
    
    - (id<EOCDatabaseConnection>)connectionWithIdentifier:(NSString *)identifier
    {
        //调用协议的方法
        [self connect];
        return nil;
    }
    
    /*
     *  实现协议的内容
     */
    -(void)connect
    {
        
    }
    
    -(void)disConnect
    {
        
    }
    
    @end
    

    相关文章

      网友评论

          本文标题:通过协议来实现匿名对象

          本文链接:https://www.haomeiwen.com/subject/ocjczxtx.html