导读: 面向对象应用由类组成,但是由消息定义,类控制着源代码的内容(静态),而消息体现的是活生生的应用(动态)。...
《面向对象设计实践指南》读书笔记
面向对象应用由类组成,但是由消息定义,类控制着源代码的内容(静态),而消息体现的是活生生的应用(动态)。
设计必须关心对象之间传递的消息。它不仅要解决对象所知道的内容(职责),以及对象都知道谁(依赖谁)的问题,还要解决他们彼此间如何进行对话的问题(消息接口)。
类的接口暴露的过多,相互参杂,会导致这些对象被精细地、明确地和容灾性的调整到只能做他们现在所做的事情。
每一个类都尽可能少的暴露自己,并且尽可能少的知道其它对象,可以让这个类变成可插拔的组件,增加其灵活性。
每个类就像一个厨房。类的存在除了要实现许多方法,还要满足单一职责。公共部分和私有部分之间的存在差别,且是最有效的做事方法。如果让顾客来知道烹饪,那么当厨房配料不足,以及需要更换人手时,他们就不得不在接受培训。使用菜单避免了这个问题,让每一位顾客只询问他们想要的东西,同时不用知道有关厨房是如何制作它的任何事情。
公共接口
暴露了其主要职责
期望被其它对象调用
不会因一时兴起而改变
对其他依赖它的对象来说是安全的
在测试里被详尽的记录
私有接口
要处理实现细节
不希望被发送到其它对象
可以因任何不明的原因而变化
对其他依赖它的对象来说不安全
可能在测试里被引用
类的公共部分是稳定的,而私有部分则是多边的。当将方法标识为公共或私有时,你便在告诉这个类的用户: 哪些方法是可以安全依赖的。当你的类使用了其他类的公共方法时,你就选择了相信这些方法是稳定的。当你决定依赖于其他对象的私有方法时,你应该明白:你正依赖某些天生就不够稳定的事物,因此它会增加你的风险,让你受到某个遥远毫不相干的变化所产生的影响。
有着丰富设计经验的设计师,他们在心里建立了一张地图,其中描绘的是这个应用程序里可能存在的各种对象,以及他们之间可能存在的交互。他们不会束缚于任何特定的想法,并且会计划使用测试来发现替代品。
领域对象(需求中那些浅显的名词)会被很容易找出来,但它们不是程序的设计中心。事实上,他们是一个为粗心大意而设立的陷阱。如果你关注这些领域对象,你就会倾向于给它们强加上行为。设计专家们也会注意到这些领域对象,但不会把精力放置到它们身上。他们不会去关注这些对象;相反,他们会去关注它们之间传递的消息。这些消息会引导你去发现其他的对象,而这些对象可远没有那么明显。
时序图
时序图提供了一种简单的方式,用来对不同对象的排列和消息传递方法进行试验。
时序图两个主要部分: 对象和它们之间传递的消息
横线表示的是消息。当有消息发送时,横线会被贴上消息的名称。消息的结尾或开始带有一个箭头,箭头指向接受者。当某个对象忙于处理接收到的消息时,它会变成活跃的,并且其数显会扩大成为一个垂直的矩形。
上图被解读为: 顾客Moe现将suitable_traips消息发送到Trip类;接着,这个类会被激活,并处理这条消息;在处理完成之后,这个类会返回一个响应。
用例里的名词在时序图里变成了对象,而用例的动作都变成了消息。
时序图的价值在于: 它们明确指定了对象间传递的消息,因为对象间只应该使用公共接口进行通信;时序图是一种用于暴露、试验并最终定义这些接口的工具。
面向消息的设计,首先要确定发送弄些消息,其次是这些消息要被发送到哪里?
从基于类的设计转变为基于消息的设计,这是你设计生涯中的一个转折点。从基于消息的角度比从基于类的角度更能产生出灵活的应用程序。将那个基本设计问题从『我知道我需要这个类,那该怎么办?』转变为『我需要发送这条消息,谁应该响应它呢?』
『你发送的消息不是因为你有了对象,你有了对象是因为你要发送消息』
醍醐灌顶,有没有
请询问『要什么』,别告知『如何做』
寻求上下文独立
对象所期望的上下文会直接影响到重用它的难度。具有简单上下文的对象易于使用,也易于测试,他们对周边的环境期望很少。具有复杂上下文的对象难以使用,也难以测试,在它们能够做任何事情之前,都需要进行复杂的设置
最好的情况是对象与它们的上下文保持完全独立。如果某个对象在与其他堆叠进行合作时,不知道他们是谁,也不知道它们所做的事情,那么这个对象便可以按各种千奇百怪和完全无法预测的方式重用,依赖注入就是一个可以帮助剥离上下文的技术。
创建基于消息的程序
使用时序图来探究设计,定义公共接口,以及发现对象。时序图可以用来做瞬态分析,可以帮助理解过程,有助于我们将焦点集中在消息上,并让我们形成一个合理的意图目的,将注意力从对象转换到消息,可以让我们专注设计一个建立在公共接口上的应用程序。
《面向对象设计实践指南》读书笔记相关热词搜索:对象 笔记 指南
1、【第一篇】:名人传读书笔记名人传》 伟大的心灵犹如崇山峻岭,风雨吹荡它,云翳包围它,但人们在那里呼吸时,比别处更自由更有力。纯洁的 名人传读书笔记(共8篇)。(2015-08-31)
2、【第一篇】:《钢铁是怎样炼成的》读书笔记钢铁是怎样炼成的》读书笔记内容简介:《钢铁是怎样炼成的》是前苏联作家奥斯特洛夫斯基根据自己 《钢铁是怎样炼成的》读书笔记(共10篇)。(2015-08-31)
3、【第一篇】:小学生读书笔记格式怎么写例姓名:王凯 班级: 2009级1班 时间:2010年9月10日 今天我读了《魔盒 读书笔记怎么写格式(共8篇)。(2015-08-31)
4、【第一篇】:《红楼梦》读书笔记[1]《红楼梦》是一部中国末期封建社会的百科全书。小说以讲述上层社会中的四大家族为中心图画,真实、生动 红楼梦读书笔记(共8篇)。(2015-08-31)
5、【第一篇】:《钢铁是怎样炼成的》读书笔记钢铁是怎样炼成的》读书笔记内容简介:《钢铁是怎样炼成的》是前苏联作家奥斯特洛夫斯基根据自己 读书笔记钢铁是怎样炼成的(共8篇)。(2015-08-31)
6、【第一篇】:《骆驼祥子》1000字读书笔记子曾经是个正直、热爱生活的劳动者。小说一开始,关于他的外貌的描写,关于他拉车的刻画,都写得很 骆驼祥子读书笔记1000字(共8篇)。(2015-08-31)
7、【第一篇】:《文化苦旅》读书笔记化苦旅之历史观《文化苦旅》是当代著名散文作家、世界级文化学者余秋雨的文化散文集。全书的主题是凭借山 文化苦旅读书笔记(共8篇)。(2015-08-31)
8、【第一篇】:读书笔记大全爱的教育》读书笔记《爱的教育》这本书是一部流传世界各地的著作,它是以一个小孩的日记方式来写的,虽然每篇的篇幅 读书笔记(共7篇)。(2015-08-31)
9、【第一篇】:《平凡的世界》读书笔记平凡的世界》读书笔记劳动着是幸福的,无论在哪个时代。《平凡的世界》正白纸黑字的告诉我们这样的人生 平凡的世界读书笔记(共10篇)。(2015-08-31)
10、【第一篇】:平凡的世界读书心得平凡的世界》读书心得《平凡的世界》是中国著名作家路遥创作的一部百万字的长篇巨著,这是一部全景式地表现 平凡的世界读书心得(共7篇)。(2015-08-31)
11、【第一篇】:骆驼祥子读书笔记骆驼祥子读书笔记:好词:甘居人后、随机应变、与世无争、自有专长、省吃俭用、无中生有、 立竿见影、兵荒马 骆驼祥子的读书笔记(共6篇)。(2015-08-31)
12、【第一篇】:小学生读书笔记50字学生读书笔记50字1 读《命运》有感前阵子在书城买了本书,叫《滴水藏海》,里边有300个经典的哲理故事。现 读书笔记50字大全(共8篇)。(2015-08-31)
13、【第一篇】:名著读书笔记爱的教育》读书笔记《爱的教育》这本书是一部流传世界各地的著作,它是以一个小孩的日记方式来写的,虽然每篇的篇幅 名著读书笔记(共8篇)。(2015-08-31)
14、【第一篇】:钢铁是怎样炼成的读书笔记钢铁是怎样炼成的》读书笔记一当《钢铁是怎样炼成的》这部激动人心的红色经典,在我面前一页页掀开, 钢铁是怎么炼成的读书笔记(共8篇)。(2015-08-31)
15、【第一篇】:《呐喊》读书笔记呐喊》读书笔记鲁迅(1881 9 25~1936 10 19),浙江绍兴人,原名周树人,字豫山、豫亭,后改名为豫才。他是 呐喊读书笔记(共9篇)。(2015-08-31)
最新推荐成考报名
更多- 歇后语_歇后语大全_歇后语大全及答案_爆笑歇后语
- 大学排名_大学排名2018排行_大学查询_中国大学名单
- 成语大全_四字成语_在线成语词典_成语查询
- 成语接龙大全查询,成语接龙游戏,在线成语接龙
- 全国安全教育平台入口_学校安全教育平台
- 社保查询网-社会保障卡查询,社会保险查询,社保网上查询
- 汉字简体繁体转换_在线繁体字转换工具
- 数字大写转换|人民币金额(数字)大小写转换在线工具
- 年龄计算器实际岁数计算器 - 周岁虚岁计算器
- 产假计算器-算产假计算器在线2018-2018年产假自动计算器
- 预产期计算器-怀孕孕期计算器-怀孕天数计算
- 中国文库网-教育资源网-范文文章
- 邮编区号查询网
- 致富商机网-致富点子_创业项目
- 创业项目网--最热门的投资项目
- 中国邮政邮编查询号码
- 电话区号查询
- 全国车牌号归属地大全
- 在线网速测试|宽带速度测试
- 人民币汇率查询
- ●理财有没有风险 金融互联网理财
- ●qq网名
- ●2016最新伤感说说
- ●谈笑风生造句
- ●读书的名言
- ●资产清查报告
- ●贫困户申请书
- ●财务自查报告
- ●离婚起诉书
- ●赞美老师的演讲稿
- ●车间管理
- ●车辆购置税
- ●跨越百年的美丽读后感
- ●跟女友离别的话
- ●超市管理制度
- ●起诉状范本
- ●赠别诗大全
- ●描写夏天的句子
- ●描写友谊的诗句
- ●迁户口申请书
- ●转正申请表范本
- ●这个杀手不太冷台词
- ●运动会稿子精选
- ●那么那么造句
- ●送给男朋友的情话大全
- ●钳工实训报告
- ●霸气说说大全
- ●骂人不带脏字的
- ●幼儿园见习个人总结
- ●追女孩子的短信