在软件配置阶段,根据开关状态的不同,我们给一个接口赋一个具体实现,在软件运行阶段,仅调用接口。
//开关配置过程
typedef void ( *ProcStrategy )( void );
void proc_strategy1( void )
{
printf( "proc_strategy1\r\n" );
}
void proc_strategy2( void )
{
printf( "proc_strategy2\r\n" );
}
#define LOWEND_TYPE 0x01
#define HIGHEND_TYPE 0x02
int main( void )
{
int strategy = LOWEND_TYPE;
ProcStrategy proc_strategy;
if ( strategy == LOWEND_TYPE ) {
proc_strategy = proc_strategy1;
} else {
proc_strategy = proc_strategy2;
}
//核心逻辑处理过程
proc_strategy();
}
我们把 proc_strategy 叫做接口,把 proc_strategy1 叫做实现。