模块化程序设计(精品·公开课件).pptVIP

  1. 1、本文档共20页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
模块化设计 模块化设计,这个概念几乎是在每个刚接触软件编程设计学习时就会被不断提醒的。但是真正地去理解和使用模块化,将其应用于所编写的程序上的变成学习者却不多。这是为什么呢? 原因大概如下: 第一,大多数的编程学习者在一开始接触和学习到的程序很小,代码量很少,甚至只有几十行。对于这样短小的程序进行模块化设计的确是有难度的(不过哪怕是再短小的程序,都可以实现模块化设计!)。 第二,很多情况下程序模块化设计需要“浪费”很多时间,例如增加了代码的数量,增加了构思的时间。 第三,很多编程学习者体验到了他们不用模块化设计,到最后也可以顺利完成程序,程序可以正常运行。 那么既然不用模块化设计更加便利和快速,为什么还需要模块化的程序设计呢?为什么不把所有的程序代码都写在一个main()函数中呢?为什么不按照傻瓜式的流水线从头到尾写代码,而是要去考虑一个一个模块的功能呢? 模块化程序设计的优点 第一,把所有代码都统统写在一个main()函数中是疯狂的做法(虽然大部分的编程教学书籍都这样做)!为什么会疯狂呢,很多学习者都是这样写的,而且最后程序成功执行! 这样的想法在很多时候都会萌生,因为学习者刚开始编写的大多数程序都是“一次性”的快餐程序!学习者一旦完成了程序,就根本不需要回头修改,或者是以后再阅读。 没有模块化设计的程序是极其难以阅读和改进的,即便是程序的作者本人,在一段时间后,也很难重新对程序进行修改。 第二,模块化程序设计个人认为是编程的核心所在,即便现在有了“面向对象”的编程,可以面向对象的编程在某种程度上也是对模块化的一种延伸,使得程序的组织结构更加富有层次感,立体感和降低程序的耦合度! 第三,几乎所有商用程序都必须使用模块化程序设计理念!这里很想使用“全部”代替“几乎”,因为真的很难想像没有模块化的商用软件! 那么究竟如何进行模块化的程序设计呢? 其实不得不说很遗憾,虽然极尽全力地想从互联网上搜索出详尽的资料,希望能够得到一个商用软件的模块化设计流程,但是因为各公司之间的商业保密和竞争,这部分的资料实在是少得可怜。这在很大程序上也造成了编程学习者难以学习真正的模块化程序设计!编程初学者难以了解一个商用软件(比如说暴风影音,QQ等)究竟是如何进行多人合作编写的,究竟是如何进行模块化划分的! 模块化程序设计并不仅仅只是多写函数,多分文件这么简单! 如何进行模块化程序设计 鉴于收集到资料实在有限和个人水平有限,这里只能够浅谈一点,当作抛砖引玉。 所谓模块化,就是要把一个整体的设计进行“合理”的拆分成很多小部分。 在这个过程中,其实“合理”是最难的! 当程序的设计思路被提出,然后准备着手设计的时候,首先就是要对程序进行合理的模块化分割。 分割的依据如下: 第一,分析目前团队人数,团队技术实力分配。 在一个团队中,每个人的技术研究方向和实力都很难保持一致,这也就导致了“合理”分配的困难。模块化分割的时候必须充分考虑分割出的模块能够分配给最适合去完成它的人! 简单程序小例子 这是一个十分简单的计算器小例子:程序的功能只有输入两个数和运算符,然后计算出运算结果。这是程序一,直接编写。 class Program { 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(B == /) D = Convert.ToString(Convert.ToDouble(A) / Convert.ToDouble(C)); Console.WriteLine(结果是: + D); } } 模块化一 这么简单的迷你小程序可以模块化吗?其实程序真的无论大小,都是完全可以进行模块化处理的,下面我们就来看看第一个改进后

文档评论(0)

花好月圆 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档