外观模式也叫门面模式。外观模式就是提供一个统一的接口,用来访问子系统中的一群接口。外观模式定义了一个高层接口,让子系统更容易使用。下面的create就是统一的接口。
typedef struct _Computer {
void ( *work )( void );
} Computer;
void work( void )
{
printf( "work here!\n" );
}
typedef struct _Phone {
void ( *contact )( void );
} Phone;
void contact( void )
{
printf( "contact here!\n" );
}
typedef struct _Factory {
Computer *computer;
Phone *phone;
void ( *create )( struct _Factory *factory );
} Factory;
void create( Factory *factory )
{
assert( NULL != factory );
factory->computer->work();
factory->phone->contact();
}
int main( void )
{
Computer computer = {
.work = work,
};
Phone phone = {
.contact = contact,
};
Factory factory = {
.create = create,
.computer = &computer,
.phone = &phone,
};
factory.create( &factory );
}