`
ajoo
  • 浏览: 453788 次
社区版块
存档分类
最新评论

论面向组合子程序设计方法 之 失乐园 之补充

阅读更多
失乐园发了之后。有的朋友对“OO是一种自顶向下的方法论”的论述有些疑问。

这里补充一下。

如果认可OO是一个责任分配体系,那么自顶向下就是一个自然的逻辑结论。


没有分析出来“需求”,也就无所谓“责任”,于是根本就无所谓“OO”了。

这种从分析需求,分解需求,分配责任,再分析子需求,分解子需求,在子模块内分配责任的方式,被我称为“自顶向下”。


至于说xp, tdd和自顶向下是不矛盾的。它们也都是要依赖于需求分析的。test case是什么?不就是需求么?
当然,这些方法论并不要求需求百分之百的细化,它们认可变化,拥抱变化,力求变化时的代价最小。不过,不管怎么说,它们仍然是要着眼于当前的需求的,应对需求变化的能力是另外一个话题,它并不能表示这些方法论不是自顶向下。

“自底向上”确实古已有之,PO时代也确实有这个提法。但是,它的缺乏方向性,缺乏重用能力,缺乏整体组织等等弊病让它从来都没有成为设计的主流,没有成为一个主导整体或者部分设计的思想。
最多算是公有制体制内的私有制补充而已。PO时代它的地位就不高,到了OO时代,强调职责分配,它更是几乎沦为一个历史词汇了。


也许你会说,我在调用xcerces, stl的时候,难道也是自顶向下?我可从来没有给stl的作者分配过责任啊。

这其实和责任分配并不矛盾。中间如果发现可以重用的模块,只要这个模块向外承诺的责任符合我的期望,我就可以用。仍然是自顶向下,需求驱动,责任驱动。
而且,xcerces这些库设计的时候,也一样要假想一下需求,然后从需求出发的。(stl不是很一样,它一定程度上有CO的影子,从基本组合子逐渐演绎的方法在其中也有体现,比如那个iterator和所有围绕iterator的算法等)
分享到:
评论

相关推荐

    补充面向对象程序设计方法:.ps

    补充面向对象程序设计方法:.ps

    金旭亮《C#面向对象程序设计》教案_1

    金旭亮《C#面向对象程序设计》教案之1:CSharp程序设计语言与dotNET面向对象程序设计概述。 后继教案将陆续发布,请关注作者的博客更新信息:http://blog.csdn.net/bitfan

    Java与UML面向对象程序设计.pdf

    《Java与UML面向对象程序设计》强调理论和设计相结合,重视对软件开发方法学有指导作用的重要概念。《Java与UML面向对象程序设计》可作为高等学校计算机科学系及软件学院高年级学生和研究生的教科书,也可作为从事...

    Visual C++面向对象与可视化程序设计 黄维通 课后习题答案程序及debug

    《Visual C++面向对象与可视化程序设计》是黄维通教授编著的一本经典教材,主要介绍了使用Microsoft的Visual C++编程环境进行面向对象程序设计和可视化应用开发的基础知识。这本书深入浅出地讲解了C++语言的核心概念...

    金旭亮《C#面向对象程序设计》教案_2

    金旭亮《C#面向对象程序设计》教案_2:CSharp程序设计语言基础。此教案针对零面向对象基础的学生,包括PDF文档及相关的示例源码,VS2010格式。后续教案将陆续发布,请关注作者博客上的更新信息:...

    吉林大学C++面向对象程序设计上机练习题全部答案及上机考试题目

    含有吉林大学C++六次上机练习题的全部答案及多次上机考试题目

    完整版C语言程序设计TXT电子书

    1.5 面向对象的程序设计语言 1.6 C和C++ 1.7 简单的C程序介绍 1.8 输入和输出函数 1.9 C源程序的结构特点 1.10 书写程序时应遵循的规则 1.11 C语言的字符集 1.12 C语言词汇 1.13 Turbo C ...

    Java程序设计习题集下载

    习题集内容覆盖面广,包括:Java言的基本常识、基本语法、面向对象的基本概念、数组、字符串、异常处理、文件和数据流、图形用户界面设计、小应用程序、线程、编程规范、网络程序设计、多媒体民图形学程序设计以及...

    基于微信小程序的点餐系统设计与实现 毕业论文.docx

    本文档是一篇关于基于微信小程序的点餐系统设计与实现的毕业论文,旨在利用微信小程序这一日益普及的技术,优化餐厅点餐流程,提供便捷的在线点餐服务。论文详细介绍了系统的开发背景、技术选型、需求分析、系统设计...

    面向对象编程的小项目,希望读者少走弯路

    1. 封装:封装是面向对象编程的核心原则之一,它将数据和操作数据的方法绑定在一起,隐藏内部实现细节,只对外提供公共接口。通过访问修饰符(如public、private、protected),我们可以控制对类成员的访问权限,...

    钱能- c++程序设计教程习题答案

    总的来说,《钱能-C++程序设计教程习题答案》是学习C++的重要辅助资料,它可以帮助你巩固理论知识,提升编程技能,为你的编程之路打下坚实基础。无论你是自学还是在课堂上学习,都应该充分利用这样的资源,将理论与...

    MFC Windows程序设计(第2版修订版)--源代码

    本书的作者,jeff prosise,用其无与伦比的技巧向读者讲述了mfc程序设计中的基本概念和主要技术——再次阐释了在32位windows平台上进行了快速的面向对象开发的完美方法。  本书涵盖了以下专题:  事件驱动程序设计...

    JSP程序设计教程课件及所有40M源码

    JSP程序设计教程课件及所有40M源码 作者:郭珍 王国辉 出版时间:5/1/2008 所属丛书:21世纪高等学校计算机规划教材——精品系列 源程序使用方法 (1)需要安装Eclipse、JDK1.6、Tomcat 6.0、SQL Server 2000。 (2...

    AutoCAD完全应用指南—AutoLISP DCL Visual LISP程序设计篇(随书光盘)

    第1篇(第1~10章)为autollsp程序设计基础篇,主要介绍了autollsp的基本结构、语法、功能函数、对象属性、循环、判断式、子程序、选择集、符号表、读文件以及写文件等autolisp程序设计的相关知识与技巧。第2篇(第11章...

    PHP与MySQL程序设计第四版Pdf与源码

    《PHP与MySQL程序设计 第4版 》pdf与源码 是全面讲述PHP与MySQL的经典之作 书中不但全面介绍了两种技术的核心特性 还讲解了如何高效地结合这两种技术构建健壮的数据驱动的应用程序 《PHP与MySQL程序设计 第4版 》...

    《C++程序设计教程》(修订版)—设计思想与实现 钱能著 课后习题答案详解

    《C++程序设计教程》(修订版)是钱能教授的经典著作,专注于讲解C++语言的设计思想和实际应用。这本书不仅介绍了C++的基础语法,更深入地探讨了面向对象编程的概念,包括类、对象、继承、多态等核心概念。课后习题...

    全国大学生电子设计竞赛设计报告模板(最新).doc

    同时,程序设计思路和流程图也是必不可少的,包括主程序和各子程序流程,这部分通常涉及到软件实现,如键盘设置、显示逻辑等功能。 四、测试方案与测试结果 团队需要提供一套全面的测试方案,包括硬件测试、软件...

    C++面向对象程序设计教程习题解答与上机指导陈维兴 (第三版!

    C++面向对象程序设计教程习题解答与上机指导陈维兴 (第三版!

Global site tag (gtag.js) - Google Analytics