您的位置:首页 > 编程语言

设计模式---原型(C++代码实现)

2007-11-20 09:05 507 查看



/**//************************************


***********接口类部分****************


*************************************/


//抽象类声明


class NomalActor




...{


public:


virtual NomalActor* Clone();


};


class FlyActor




...{


public:


virtual FlyActor* Clone();


};


class WaterActor




...{


public:


virtual WaterActor* Clone();


};


//具体类声明


class NomalActorA:public NomalActor




...{


public:




virtual NomalActor* Clone()...{return (NomalActor*)this; }




};


class NomalActorB:public NomalActor




...{


public:




virtual NomalActor* Clone()...{return (NomalActor*)this; }


};






class FlyActorA:public FlyActor




...{


public:




virtual FlyActor* Clone()...{return (FlyActor*)this; }


};


class FlyActorB:public FlyActor




...{


public:




virtual FlyActor* Clone()...{return (FlyActor*)this; }


};






class WaterActorA:public WaterActor




...{


public:




virtual WaterActor* Clone()...{return (WaterActor*)this; }


};


class WaterActorB:public WaterActor




...{


public:




virtual WaterActor* Clone()...{return (WaterActor*)this; }


};




/**//************************************


***********客户类部分****************


*************************************/


class GemeSystem




...{


GemeSystem();


~GemeSystem();


void Run();




};


void GemeSystem::Run(NomalActor normalactor,FlyActor flyactor, WaterActor wateractor)




...{


NomalActor normalactor1 = normalactor.Clone();


NomalActor normalactor2 = normalactor.Clone();


NomalActor normalactor3 = normalactor.Clone();


NomalActor normalactor4 = normalactor.Clone();


NomalActor normalactor5 = normalactor.Clone();


FlyActor flyactor1 = flyalactor.Clone();


FlyActor flyactor2 = flyalactor.Clone();


WaterActor wateractor1 = watoralactor.Clone();


WaterActor wateractor2 = watoralactor.Clone();


}




/**//************************************


***********主函数部分****************


*************************************/


int int main()




...{


GemeSystem gameactor1;


WaterActorA wateractor;


FlyActorB flyactor;


NormalactorA normalactor;


gameactor1.Run(normalactor,flyactor,wateractor);


return 0;


}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐