黑色衬衣搭配图片:案例分析:面向对象得失论
来源:百度文库 编辑:九乡新闻网 时间:2024/04/28 07:04:03
缘起最近一段时间,在博客园关于面向对象的讨论比较热烈,你来我往的,好不热闹。不完全归纳一下,大约有以下几种意见比较受欢迎:A. 面向对象需要组织、团队支持,需要一种环境;B. 面向对象比面向过程编程要复杂,需要花很大代价才能掌握;C. 面向对象不是必须的;D. 面向对象存在一定的性能损失。其实每一个意见都有的一定的依据,不过这些依据都是站在自己的背景下才能站得住脚,并不是放之四海而皆准的。面向对象是一组思维方法、分析方法和编程方法的集合,当然不是最终的结果。前段时间有一个“在项目中摸爬多年”的看似极富经验的博友,曾经对面向对象颇有微词,把项目失败中的种种罪过归咎于对面向对象的追求。当然,面向对象并不是医治百病的良药,不当的追求会导致难以预料的恶果。面对这样的“风险”,再加上面向对象貌似曲高和寡,难怪大量的技术负责人(当然包括园子里的那些技术负责人)勿宁放弃了。其实放弃也就放弃了,原因也并不一定就在于面向对象本身,不必在这种背景下对面向对象产生诸多抱怨。案例前段时间某个项目中有这样一个需求:将某些Word文档生生导入到系统的数据库中。这个需要是合理的,该文档是流程中的一个重要附件。重复录入不仅意味着用户需要多输入一遍,而且还增加了录入错误的风险。所以,我很乐意支持这个需求,它将让我们的系统增加一份稳定性和正确性。其中有一个文档是这样的:我估计很多人会选择放弃,因为他们选择结构化分析方法,很难入手。我设计这个框架用了一天,实现用了一天,测试并重构它用了两天,其中有一个夜班加到半夜四点。最后做总测试的时候居然一次成功,连我都没有想到。看看我的思路,也许你可以从中找到在业务越来越复杂的今天,让你无法摆脱面向对象思维的众多支撑点。A. 由于需要对Word文档事先做一个描述,所以,通过一个XML来定义文档格式是必不可少的(XML真是奇妙,让你轻松地发明一种自己的“语言”可以描述你任何想描述的东西)。B. XML文档读出到系统中成为一个你事先设计好的对象模型,用这个模型可以对每一个Word文档实例进行检验并读出其中的敏感内容。C. 找一个性能良好的读出器,把Word文档的内容变成另一个体系的对象模型。D. 把以上两个文档对象模型一一匹配,并由其中的某些特殊的元素完成数据读出,且放置到事先设计好的指定地方。单独完成A、B、C都是容易的,完成这每个部分并确认其完全可靠以后,再完成D其实只需要很少的代码了。XML文档设计了以下元素节点::这是一组简单类型的定义,在一个中包含多个节点。节点则说明其类型和意义,类型可以是string/int/float/datetime/bool这五种简单类型,也可以是已经定义的,还可以是某个可重复的数组。如果你愿意,可以把整个文档的数据包含在一个单一的中。:这是一组导入源的节点。可以一次导入多个相关的Word文档来完成一次导入活动。在每个