吉林大学软件学院卓班设计模式第三次作业

时间:2022-11-10 14:47:44
【文件属性】:
文件名称:吉林大学软件学院卓班设计模式第三次作业
文件大小:1012KB
文件格式:RAR
更新时间:2022-11-10 14:47:44
吉林大学 设计模式 作业03 结构型模式 1. 现Mouse类的定义如下: class Mouse { public: void Walk( int steps ) { cout<<"Implement for Walk() with Verson 1."} void AddMoney(int m) { cout<<"Implement for AddMoney() with Verson 1."} private: int posX; int posY; }; 若已知:在后续的版本中 a)可能会增加Mouse类的其他行为,如增加Drive(int steps)和Fly(int steps); b)可能需要改变Walk(int steps)的具体实现细节; c)可能会增加其它数据成员,如将2D位置信息改为3D位置信息等。 d)希望在新版本中,尽可能地通过扩展老版本,适应新需求。 请使用桥接模式重新设计Mouse类及相关类,并简要说明如何适应变化a-d。 2. 请设计并实现一个foo.dll,其中含有类如下: a) 若foo.dll直接导出了类Foo、类FooA、类FooB,请使用类适配器和对象适配器,实现 class User { public: int myProcess( ) { /*适配Foo.process(); */ } }; b) 若foo.dll没有导出类Foo、类FooA、类FooB,但导出函数shared_ptr createFooA();和shared_ptr createFooB();,请使用对象适配器使得User可以适配任意指定的Foo类族的子类对象的process。 3. 针对给出的场景、描述,请说出最适当的模式名字,并用文字或示例代码给出简要的使用说明或解释。 1) 开发了一个用于数值计算的大型程序库,它的功能是强大的,但需要使用者具备较高的数学专业知识。为方便“菜鸟”级用户的使用,需要提供一个简化版的,但同时又不希望影响专业人员的使用。使用哪种设计模式较好?如何设计? 2) 在2D游戏的开发中,需要绘制地图,地图是由大量的“一样的图块”拼接而成,而“图块”的种类有限,目前有草地、海洋、沙漠、山地等,未来肯定要增加种类,但不会太多太频繁。采用何种模式组织“图块”类比较好?如何设计? 3) 在开发一个办公自动化系统时,项目组在ElectricSignature类集中实现了电子签名的功能。但在使用中发现该类不能完全满足用户需求,由于财力和人员的限制,决定直接购买第三方电子签名软件,其中的FZ_ESignet类功能与ElectricSignature的功能一样,但是两个类中的函数名都是不一样的,而且购买的只是二进制代码,没有源代码。现希望使用第三方软件的功能,但又不希望修改ElectricSignature的接口。使用哪种设计模式改进较好?如何改进? 4) 某书店需要开发一套图书购销存软件。在设计图书类时发现:图书有单行本和成套的,又细分成教辅材料、科学知识、文学著作等。设计时,希望能够以一致的方式访问各种图书,不论是单本的、成套的、IT类的或古典名著。使用哪种设计模式较好?如
【文件预览】:
作业03
----作业03.docx(50KB)
----T02B()
--------Foo()
--------User()
----第3题.docx(15KB)
----T02A()
--------Foo()
--------User()
----T01()
--------T01.sln(1KB)
--------Debug()
--------T01()

网友评论