- 1、本文档共71页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
《面向对象分析与设计第一章.》.ppt
面向对象分析与设计 易国洪 参考书籍 本书通篇都是以情景对话的形式,用多个小故事或编程示例来组织讲解GoF(设计模式的经典名著——Design Patterns: Elements of Reusable Object-Oriented Software,中译本名为《设计模式——可复用面向对象软件的基础》的四位作者Erich Gamma、Richard Helm、Ralph Johnson,以及John Vlissides,这四人常被称为Gang of Four,即四人组,简称GoF)总结的23个设计模式。本书共分为29章。其中,第1、3、4、5章着重讲解了面向对象的意义、好处以及几个重要的设计原则;第2章,以及第6到第28章详细讲解了23个设计模式;第29章是对设计模式的全面总结。 思考与作业 请同学们用C++、Java、C#任意一种面向对象语言实现一个计算器控制台程序,要求输入两个数和运算符号,得到结果。 class computer { static void Main(string[] args) { Console.Write(请输入数字A:); string A = Console.ReadLine(); Console.Write(请选择运算符号(+、-、*、/):); string B = Console.ReadLine(); Console.Write(请输入数字B:); string C = Console.ReadLine(); string D = ; if (B == +) D = Convert.ToString(Convert.ToDouble(A) + Convert.ToDouble(C)); if (B == -) D = Convert.ToString(Convert.ToDouble(A) - Convert.ToDouble(C)); if (B == *) D = Convert.ToString(Convert.ToDouble(A) * Convert.ToDouble(C)); if (O == /) D = Convert.ToString(Convert.ToDouble(A) / Convert.ToDouble(C)); Console.WriteLine(结果是: + D); } } 引言(续) “话说三国时期,曹操带领百万大军攻打东吴,大军在长江赤壁驻扎,军船连成一片,眼看就要灭掉东吴,统一天下,曹操大悦,于是大宴众文武,在酒席间,曹操诗性大发,不觉吟道:‘喝酒唱歌,人生真爽。….’众文武齐呼:‘丞相好诗!’于是一臣子速命印刷工匠刻版印刷,以便流传天下。” 引言(续) “样张出来给曹操一看,曹操感觉不妥,说道:‘喝与唱,此话过俗,应改为‘对酒当歌’较好!’,于是此臣就命工匠重新来过。工匠眼看连夜刻版之工,彻底白费,心中叫苦不迭。只得照办。” 引言(续) “样张再次出来请曹操过目,曹操细细一品,觉得还是不好,说:‘人生真爽太过直接,应改问语才够意境,因此应改为‘对酒当歌,人生几何?….’当臣转告工匠之时,工匠晕倒…..!” 引言(续) 这里面问题出在哪里? 因为三国时期活字印刷还未发明,所以要改字的时候,就必须要整个刻板全部重新刻 活字印刷,面向对象 如果是有了活字印刷,则只需更改四个字就可,其余工作都未白做。岂不妙哉 活字印刷,面向对象 第一,要改,只需更改要改之字,此为可维护; 第二,这些字并非用完这次就无用,完全可以在后来的印刷中重复使用,此乃可复用; 第三,此诗若要加字,只需另刻字加入即可,这是可扩展; 第四,字的排列其实可能是竖排可能是横排,此时只需将活字移动就可做到满足排列需求,此是灵活性好。” “而在活字印刷术出现之前,上面的四种特性都无法满足,要修改,必须重刻,要加字,必须重刻,要重新排列,必须重刻,印完这本书后,此版已无任何可再利用价值。” 活字印刷,面向对象 从事软件开发几年后,同学也会经历太多的类似曹操这样的客户要改变需求,其实客观地说,客户的要求也并不过份,不就是改几个字吗,但面对已完成的程序代码,却是需要几乎重头来过的尴尬,这实在是痛苦不堪。 原因就是因为我们原先所写的程序,不容易维护,灵活性差,不容易扩展,更谈不上复用,因此面对需求变化,对程序动大手术的那种无奈也就成了非常正常的事了。 活字印刷,面向对象 学习了面向对象的分析与设计编程思想,开始考虑通过封装、继承、多态把程序的耦合度降低。 传统印刷术的问题就在于所有的字都刻在同一版面上造成耦合度太高所致。 如
文档评论(0)