BBABoxParameters.h 1.46 KB
//
//  BBABoxParameters.h
//
//
//  Created by Guo,Jin(MAD) on 2017/11/13.
//  Copyright © 2017年 Baidu. All rights reserved.
//  手百公参规范:http://wiki.baidu.com/pages/viewpage.action?pageId=97550490

#import <Foundation/Foundation.h>

NS_ASSUME_NONNULL_BEGIN

typedef NSString*_Nullable(^BBABoxParamBlock)(void);

@interface BBABoxParameters : NSObject

+ (instancetype)shared;

/**
 * 合成公参(部分参数是动态的)
 */
- (NSString*)composeParameters;


/**
 * @brief 设置公参中外部依赖的静态参数(不建议使用,推荐使用block的方式)
 *
 * @param param 参数值
 * @param key key
 *
 */
- (void)setStaticParameter:(NSString*)param forKey:(NSString*)key;


/**
 * @brief 设置公参中静态参数的block(性能要求)
 *
 * @param block 动态参数返回block
 * @param key key
 *
 */
- (void)setStaticParameterBlock:(NSString* (^ __nullable)(void))block forKey:(NSString*)key;

/**
 * @brief 移除公参中静态参数的block((非线程安全)
 *
 * @param key key
 *
 */
- (void)removeStaticParameterBlockForKey:(NSString *)key;

/**
 * @brief 设置公参中外部依赖的动态参数
 *
 * @param block 动态参数返回block
 * @param key key
 *
 */
- (void)setDynamicParameter:(NSString* (^ __nullable)(void))block forKey:(NSString*)key;

/**
 * @brief 移除公参中动态参数的block((非线程安全)
 *
 * @param key key
 *
 */
- (void)removeDynamicParameterForKey:(NSString *)key;

@end

NS_ASSUME_NONNULL_END