#include <stdio.h>
#include <stdlib.h>
#include <string.h>
/*C语言实现<设计模式之禅>之代理模式____普通代理*/
/*代理模式: 为其他对象提供一种代理以控制对这个对象的访问*/
/*普通代理: 调用者只能访问代理角色,而不能访问真实角色。 调用者只知道代理而
不用知道真实角色,屏蔽了真实角色的变更对高层模块的影响。*/
/*抽象游戏者*/
typedef struct _IGamePlayer IGamePlayer;
struct _IGamePlayer
{
void (*login)(char *pName, char *pPassword, void *);
void (*killBoss)(void *);
void (*upgrade)(void *);
void (*DeleteIGamePlayer)(void *);
};
/*游戏者*/
typedef struct _GamePlayer GamePlayer;
struct _GamePlayer
{
IGamePlayer gmplayer; /*继承抽象游戏者*/
char acName[10];
void (*DeleteGamePlayer)(GamePlayer *pGamePlayer);
};
void login(char *pName, char *pPassword, void *pGamePlayer)
#include <stdlib.h>
#include <string.h>
/*C语言实现<设计模式之禅>之代理模式____普通代理*/
/*代理模式: 为其他对象提供一种代理以控制对这个对象的访问*/
/*普通代理: 调用者只能访问代理角色,而不能访问真实角色。 调用者只知道代理而
不用知道真实角色,屏蔽了真实角色的变更对高层模块的影响。*/
/*抽象游戏者*/
typedef struct _IGamePlayer IGamePlayer;
struct _IGamePlayer
{
void (*login)(char *pName, char *pPassword, void *);
void (*killBoss)(void *);
void (*upgrade)(void *);
void (*DeleteIGamePlayer)(void *);
};
/*游戏者*/
typedef struct _GamePlayer GamePlayer;
struct _GamePlayer
{
IGamePlayer gmplayer; /*继承抽象游戏者*/
char acName[10];
void (*DeleteGamePlayer)(GamePlayer *pGamePlayer);
};
void login(char *pName, char *pPassword, void *pGamePlayer)