设计模式的C语言实现--桥接模式

 将抽象部分与它的实现部分分离,使它们都可以独立地变化。考虑装操作系统,有多种配置的计算机,同样也有多款操作系统。如何运用桥接模式呢?可以将操作系统和计算机分别抽象出来,让它们各自发展,减少它们的耦合度。当然了,两者之间有标准的接口。这样设计,不论是对于计算机,还是操作系统都是非常有利的。

在单片机中,该模式用的很少,大概如下:

typedef struct _CPU {
    void (*assemble_cpu_imp)( struct _CPU* cpu );
    int type;
} CPU;
 
static void assemble_cpu_imp( CPU *cpu )
{
    printf( "%d cpu!\n", cpu->type );
}
 
typedef struct _Computer {
    void (*assemble_cpu)( CPU *cpu );
} Computer;
 
static void assemble_cpu( CPU *cpu )
{
    cpu->assemble_cpu_imp( cpu );
}
 
#define LOWEND_TYPE 0x01
#define HIGHEND_TYPE  0x02
int main( void )
{
    CPU cpu1;
    cpu1.type = LOWEND_TYPE;
    cpu1.assemble_cpu_imp = assemble_cpu_imp;
    CPU cpu2;
    cpu2.type = HIGHEND_TYPE;
    cpu2.assemble_cpu_imp = assemble_cpu_imp;
 
    Computer com1;
    com1.assemble_cpu = assemble_cpu;
    com1.assemble_cpu( &cpu1 );
    com1.assemble_cpu( &cpu2 );
 
    Computer com2;
    com2.assemble_cpu = assemble_cpu;
    com2.assemble_cpu( &cpu1 );
    com2.assemble_cpu( &cpu2 );
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值