按行为划分系统
•程序的中心是行为
•不基于行为的系统划分,基本上是严重错误的。
•正是系统的行为为我们提供了第一个关于应该如何划分系统的线索
水蒸气类
•没有任何成员变量、状态
•只是一个调用转换器
•水蒸气类没有存在的必要
虚拟抽象
•抽象是非常微妙的
•对抽象类,多问问:谁使用它们?
•一个仅仅含有抽象方法并且不具有任何使用者的类,完全是一个无用的类
•虚拟抽象类没有存在的必要
上帝类
如何进行软件设计?
•把问题的本质和细节分离
•忘掉所有的小细节,集中关注根本问题
•根本问题是什么?
–如对咖啡机:如何煮咖啡?煮咖啡的水从哪里来?到哪里去?
•根据根本问题
–定大范围的职责——模块/类
–定模块/类之间的关联(交互/消息/行为)
•总的来说,要从行为入手,用抽象思维进行软件设计
关联
•关联是对象之间消息发送到路径
•软件对象之间的关联和物理实体的流向没有任何关系
面向对象设计的本质
•面向对象设计的本质
–高层策略和底层细节隔离
分享到:
相关推荐
Python 笔记源码——内含python后端&机器学习等.zip Python 笔记源码——内含python后端&机器学习等.zip Python 笔记源码——内含python后端&机器学习等.zip Python 笔记源码——内含python后端&机器学习等.zip ...
通过阅读和学习这些JAVA学习笔记,开发者不仅可以掌握JAVA编程的基本技能,还能深入了解其设计理念,从而更好地应对各种实际开发问题。不断更新和完善自己的JAVA知识体系,对于成为一名优秀的JAVA开发者至关重要。
S7-200 Smart入门笔记1——流水灯 按钮 S7-200 Smart入门笔记1——流水灯 定时器 S7-200 Smart入门笔记2——读时钟 S7-200 Smart入门笔记3——呼吸灯 S7-200 Smart入门笔记4——全局变量和局部变量 S7-200 Smart入门...
通过阅读这些笔记,学习者不仅可以掌握前端开发的基本技能,还能了解到实际开发中可能会遇到的问题和解决策略。 文件列表中的"CSS1"和"CSS2"可能包含了一些CSS的实例或练习,"html"文件夹可能包含了HTML页面示例,...
这篇压缩包文件“上海初三英语阅读精讲笔记1——阅读A篇题型-原创.rar”显然是针对中国上海市初中三年级学生的一份英语学习资料,重点在于提高学生的阅读理解能力。其中包含了一个PDF文档,名为“上海初三英语阅读...
标题中的“论文笔记模板——自用xmind模板.zip”表明这是一个使用XMind软件创建的个人使用的论文笔记模板,被压缩成ZIP格式以便于存储和分享。XMind是一款强大的思维导图和头脑风暴软件,它可以帮助用户整理思路,...
**思源笔记插件——汇总散落在整个工作空间的任务 Siyuan Note Plugin** 思源笔记(Siyuan Note)是一款开源的个人知识管理系统,它以其强大的笔记组织功能和灵活的自定义能力受到许多用户的喜爱。在日常工作中,...
记忆笔记一——文化生活二 .pdf
本资源提供了一份“论文笔记模板——自用xmind模板”,旨在帮助用户以更有序的方式整理和记录论文阅读心得。 Xmind是一款强大的思维导图软件,它以其直观的界面和丰富的功能深受用户喜爱,尤其适用于整理复杂信息和...
学习笔记之——基于pytorch的FSRCNN 把我的代码上传了,后续有更正会更新这个代码
公开课笔记3——局部加权回归、逻辑斯蒂回归、感知器算法 公开课笔记4——牛顿方法、指数分布族、广义线性模型 公开课笔记5——生成学习、高斯判别、朴素贝叶斯 公开课笔记6——NB多项式模型、神经网络、SVM初步 ...
读书笔记——AGoodManIsHardToFind.pdf 读书笔记——AGoodManIsHardToFind.pdf 是一篇关于美国南方女作家 Flannery O'Connor 的读书笔记。该笔记主要讨论了 O'Connor 的小说《好人难寻》(A Good Man Is Hard to ...
读书笔记:数学之美读书笔记——吴军博士2020年寒假大三上学期
Spring.NET学习笔记22——整合WCF(应用篇) http://www.cnblogs.com/GoodHelper/archive/2010/05/15/SpringNet_Wcf.html
刘冬编写Spring.NET学习笔记25——整合Quartz.NET例子。 原文: http://www.cnblogs.com/GoodHelper/archive/2009/11/20/SpringNet_QuartzNet.html
个人网课学习笔记
【上海初三英语阅读精讲笔记1——阅读A篇题型-原创.pdf】是一份针对初三学生英语阅读理解的专项训练资料,旨在提升学生的阅读技能,尤其是处理不同类型阅读题目的能力。以下是笔记中涉及的主要知识点: 1. **语篇...
刘冬编写的Spring.NET学习笔记21——整合WebService的例子。 原文:http://www.cnblogs.com/GoodHelper/archive/2009/11/19/SpringNet_WebService.html
刘冬编写的Spring.NET学习笔记26——整合NVelocity例子。 原文:http://www.cnblogs.com/GoodHelper/archive/2009/11/20/SpringNet_NVelocity.html