对象健身操详解 - Tech For Fun.pdf

所需积分/C币:6 2019-11-14 834KB PDF
评分

面向对象九诫,摘自ThoughtWorks文集、博文!对象健身操,写好代码,值得收藏,随时告诫自己!
对象使身操详解- Tech For fun 该戒条理解起来很简单,只需要在方法内没有嵌套的i/ switch/for/whie等关键字,使 用重构中的 extract method手法完全可以做到。其目的有2个 1.实现函数的单一职责 2.函数变得更加简明,定位错误更加容易。 cLass board i String board()i Stringbuffer buf new StringBuffer( for (int i=0; 1 < 10; l++)t for(intj=0;j<10;j++) buf append(data[il[]); buf append("\n")i return buf. tostring() 应用诫条重构后的代码: class board t String board()t StringBuffer buf new StringBuffer (); collect Rows(buf) Return buf tostring ()i Void collectRows (StringBuffer buf)i for (int i =0;i< 10: 1++) collecton(buf,立); Void collectRow(stringbuffer buf, int row)t for (int i =0;i< 10: i++) buf append (data[row][il); f append(\n") 3/17 对象健身操详解- Tech for fun 该诫条的另外—种常见形式是每个方法长度不超过5。 诫条二:拒绝使用else关键字 方式一:卫语句或提前返回 public static void endMe()t if(status = doNE)t dosomething () false dosomethingelse()i public static void endE()t if(status = DONE)t dosomething(); return i dosomethingelsed): 方式二:使用三元操作符 public static Node head)t if(isAdvancingo))i return first: return lasti public static Node head(t return isAdvancingo)? first last; 其他方法 4/17 对象健身操详解- Tech for Fun 使用多态 2.空对象模式 3.策略模式 4.状态模式 具体可参见各种设计模式的书籍,在此就不复述了。 注:使用该诫条需要关注代码清晰度的变化 诫条三:封装所有的原生类型和字符串 该诫条对应反模式: Primitive Obsession(ht://yktc2com/? Primitiveobsession) 通过包装类来封装原生类型和字符串,比较常见的有:Hour、 Money等类。使得类 型的使用上更具可读性和安全性。但这并不意味着使用诸如Java语言提供的类似对 象包装器,使用 iNteger类并不会在表达意图上带来额外的优势,而使用表达意图含义 的包装器既能澄清其用法,又能让意图变得明显。 public interface Account t void credit(int amount) void debit(int amount)i 应用诫条后的代码 public interface Account i void credit(Money amount); void debit(Money amount); 重构前任意的jnt型数值都可以参与账户转账业务,重构后只能是 Money类型才1 法 5/ 对象健身操详解- Tech for fun 注:如果原生类型变量拥有行为时,有必要对其进行封装。 诫条四:一行代码只有一个“运算符 违反该诫条的代码形式为:objm10m20.m30,对象需要同时与另外多个对象交互。 在 Martin fowler《重构》中,将其命名为“消息链条( Message Chain)”,别名“火 车残骸”。该行为暴露了细节,破坏了封装性,让类的边界跨入了其不应知道的类 中,违反了“迪米特法则”(只和身边的朋友交流)。 迪米特法则的通俗解释:你可以玩自己的玩具,可以玩你制造的玩具,还要别人送给 你的玩具,但是永远不要碰别人的玩具。 class board i class piece i String representation class Location t Piece current i String boardRepresentation()t String Buffer buf new StringBuffer()i for (Location L squares()) buf append(l current representation. substring(0, 1) return buf tostring(); 应用诫条后的代码 对象使身操详解- Tech For fun class Board class Piece i private String representation String character()i return representation, substring (0, 1) void addTo(StringBuffer buf )t buf append( character ()i class location t private Piece currenti void addTo(StringBuffer buf)t current addTo(buf) String boardRepresentation(t StringBuffer buf new StringBuffer (); for (Location 1 squares()) L addTo(buf) return buf tostring()i 在流式编程及内部DSL中也常有,但这些代码一般称之为“流畅接口( Fluent nterface)”: 7/17 对象使身操详解- Tech For fun public class GraphDslSample i public static void main(String[] args)i GI rapn edge() from("a") to b") /eight(40.0) edge() from ("b") to(c) weight (20.0) edge() from d to(e) weight (50.5) printgraph() 二者的区别在于观察形成链条的每个方法返回的是别的对象,还是自身。如果返回的 是别的对象,就属于消息链条。 注:附带好处可读性进一步提升。 诫条五:不要使用缩写 所有实体对象的名称只包含一到两个单词,不能使用缩写。好处是避免名字中重复上 下文信息。 使用缩写的一般原因: 1.不停地方法调用一意昧着有必要消除重复 2.方法名太长一意味着职责没有放在正确的位置或有缺失的类 8/17 对象使身操详解- Tech For fun class EOi void shiporder(); //方法调用上存在冗余 E0 order new E00 order. shiporder (: 应用诫条后的代码 class EntityOrdert void ship()i /方法调用更自然 EntityOrder order new Entityorder()i order. ship(); 诫条六:保持实体对象简单清晰 类的行数不超过50行,每个包不超过10个文件。 超过50行的类通常做不止一件事,这使得它们更难理解,更难以重用。另外一个好 处就是可在一个屏幕上显示,不用滚屏,使得代码更易于阅读者理解。 挑战是将会出现很多成组的行为,它们的逻辑应该在一起的。这就需要包机制来平 衡。由于包內文件数量的限制,包会更加内聚,且会有一个明确的意图 917 对象使身操详解- Tech For fun class someClass 300 lines of code 7/20 properties //20 methods public function simpleLogic() /30 lines of code class someclass //50 ines of code 7/5 properties //5 methods public function simpleLogic() //10飞 ines of code 诫条七:任何类中的实例变量都不要超过两 将一个对象从拥有大量属性状态,解构成分层次的、相互关联的多个对象,直接产生 个更实用的对象模型。 这可能是最难做到的诫条了,但会促进代码的高内聚性和更好 的封装性。它依赖于诫条三(封装所有的原生类型和字符串)。 一图胜干言 10/17

...展开详情
立即下载 最低0.43元/次 身份认证VIP会员低至7折
举报 举报 收藏 收藏
分享
8.35MB
健身操说课ppt模板

健身操说课ppt模板适用于健身运动主题设计应用。

2019-10-18
25KB
代码健身操_4_停车场

NULL 博文链接:https://tidelee.iteye.com/blog/2031025

2019-08-05
1.01MB
适合办公室或IT一族的健身操.ppt

办公室一族,坐时间长了,需要起来活动活动,活动时可以有一个规范做指导,就是做操,本文档正好提供了这个指导,欢迎大家免费下载,轻松健康的锻炼,快乐的工作。

2016-04-28
1.01MB
适合办公室或IT一族的健身操

在办公室长坐或久坐后,需要起来活动活动,本文档提供了较好的指导,长期坚持有良效。

2016-04-29
221KB
湖南师范大学在校女生参与健身健美操俱乐部锻炼动机的调查研究

湖南师范大学在校女生参与健身健美操俱乐部锻炼动机的调查研究,陈冰心,,通过问卷调查和文献资料法,研究湖南师大在校女生对健美操运动的认识以及参加健身健美操运动的动机特点。以学生对健美操认识为出

2020-01-03
235KB
瑜伽与健美操运动处方对女大学生身心健康影响的研究

瑜伽与健美操运动处方对女大学生身心健康影响的研究,尹丽琴,汤长发,目的:设计瑜伽结合健美操的运动处方,进行实验研究为女大学生健身提供建议和指明方向。方法:以中南大学健身志愿者20名女大学生�

2020-01-04
1.29MB
一组健身健美PPT背景图片.zip

  这是一组健身健美PPT背景图片,共9张。第一PPT模板网提供精美体育运动幻灯片背景图片免费下载; 关键词:健身PowerPoint背景图片,精美幻灯片背景图片,.PPTX格式;

2019-07-15
377KB
长沙市健身俱乐部健美操指导员现状调查与研究

长沙市健身俱乐部健美操指导员现状调查与研究,李先雄,,随着人们生活水平和物质文明的提高,人们健康意识不断增强,人们花钱买健康的观念也不断增强。在我国越来越受到大众的欢迎,已成

2020-01-04
40.72MB
ASP.NET+SQL Server训练馆场地预约分配系统源码.zip

训练馆场地预约分配管理系统采用B/S模式设计与开发,学员和注册后可以在任意电脑上登录后就可以进行场地和器械的预约操作。系统通过ASP.NET技术和SQL SERVER数据来进行开发。系统前台用户和后台管理员两种用户,前台用户主要负责训练馆场地和器械的预约操作、查看健身操和健康知识、在线留言与查看等功能;管理员主要负责管理员训练馆场地和器械的管理、用户管理、健身操和健康知识的管理、用户留言回复。

2019-09-26
232KB
第八届全国大运会轻器械健美操比赛现状分析

第八届全国大运会轻器械健美操比赛现状分析,李先雄,杨芳,采用文献资料法、录像分析法、数理统计法、比较分析法等,对第八届全国大运会轻器械六人健身健美操,在选择、利用器械及成套动作

2020-01-04
1.92MB
KoreEasy RO的SF服专用程序

很好的初级教程 KoreEasy指令表[完整版] 其实是通用参数,Kore相关系列皆可通用 ( ) - 必要参数,没填写指令就不会动作 [ ] - 选用参数,没填写即为默认 -=-=-=-=-=-=-=-= 状态查询 =-=-=-=-=-=-=-=- s - 人物状态,列出跟人物有关的重要讯息,相当于仙境传说内无法关掉的状态窗口 i [u/eq/nu] - 物品栏列表,分为可使用物品栏、装备物品栏,及不可使用物品栏 例如:只要列出可使用物品栏 i u cart - 手推车物品列表,商人/铁匠/练金术士 专用 st - 属性数据,列出人物的细部数据(像str力量

2009-05-18
11KB
C++程序设计语言(特别版)--源代码

提供的是书中的源代码,非课后练习源代码。 本版本是高清版,是第1版第18次印刷,是书签最全最好的版本。 基本信息 原书名: The C++ Programming Language, Special Edition 原出版社: Addison Wesley 作者: (美)Bjarne Stroustrup 译者: 裘宗燕 丛书名: 计算机科学丛书 出版社:机械工业出版社 ISBN:7111102029 上架时间:2002-7-12 出版日期:2002 年7月 页码:936 版次:1-1 内容简介    本书介绍了标准c++以及由c++所支持的关键性编程技术和设计技术。标准c++较以

2012-04-23
51.87MB
C++程序设计语言(特别版)--细书签版

本版本是高清版,是第1版第18次印刷,是书签最全最好的版本。 基本信息 原书名: The C++ Programming Language, Special Edition 原出版社: Addison Wesley 作者: (美)Bjarne Stroustrup 译者: 裘宗燕 丛书名: 计算机科学丛书 出版社:机械工业出版社 ISBN:7111102029 上架时间:2002-7-12 出版日期:2002 年7月 页码:936 版次:1-1 内容简介    本书介绍了标准c++以及由c++所支持的关键性编程技术和设计技术。标准c++较以前的版本功能更强大,其中许多新的语言特性,如名

2012-04-23
695KB
C++程序设计语言(特别版)--课后习题源代码

提供的是本书的课后习题源代码,也就是《C++程序设计语言(特别版)题解》的源代码。非书中源代码。 本版本是高清版,是第1版第18次印刷,是书签最全最好的版本。 基本信息 原书名: The C++ Programming Language, Special Edition 原出版社: Addison Wesley 作者: (美)Bjarne Stroustrup 译者: 裘宗燕 丛书名: 计算机科学丛书 出版社:机械工业出版社 ISBN:7111102029 上架时间:2002-7-12 出版日期:2002 年7月 页码:936 版次:1-1 内容简介    本书介绍了标准c++以及

2012-04-23
68KB
开心健康小卫士 v1.1 绿色免费版.rar

这个小卫士可以按照您的设定,每隔一段时间就跳出来,提醒您休息一会,并“迫使”您摇头晃脑地做一套特殊的颈椎保健操。小卫士好不好,用了就知道! 【使用简介】 该软件为绿色软件,随便复制到任一文件夹内运行即可。软件运行后会在系统托盘显示软件图标,请先点击右键进行简单的参数设置: 第一步:选择一个文本文件作为颈椎保健操显示的内容,压缩包里自带一个生活小窍门,可以让你在保护颈椎的同时学到一些生活常识,一举两得; 第二步:设置一下字体,其实默认的就很好了; 第三步:选择多少分钟提醒一次,选中“开机自动运行”,确定。到了设定的时间,小卫士会准时弹出提醒窗口。

2019-07-09
5.99MB
360健康精灵(360眼睛卫士)最新 绿色版

眼保健操Q版图   当到了设定的休息时间,360的安仔会自动弹出让你休息,当然,如果手头真的有非常必要的事情可以选择暂不休息。当点击立刻休息,则会跳出一款Q版眼睛保健操演示图,可谓让人重温了儿时的记忆,每天课间那清脆的声音:“眼保健操,现在~开始~~第一节,按揉睛明穴”…… 视力保护色 等功能

2018-08-29
233KB
探讨瑜伽和健美操运动处方对女大学生身体素质和心理健康的影响

探讨瑜伽和健美操运动处方对女大学生身体素质和心理健康的影响,陶霞,汤长发,目的:根据瑜伽和健美操各自的运动特点和对人身体素质和心理健康的影响,把两者结合起来,设计出一个科学合理的运动处方,为女大

2020-01-03
2.04MB
物联网标准与医疗健康应用 国家物联网基础标准工作组 总体组 沈

在物理世界的实体中部署具有一定感知能力、计算能力、通信能力的各种感知控制终端设备 经过对大量信息的专业处理,提供全面的感知和操控服务,即物与物、人与物之间深度信息互联互通

2014-11-07
2.67MB
护眼宝 v3.1.zip

护眼宝是一款专业的护眼软件。软件专为、办公、游戏玩家等长时间对着电脑人群而设计,其作用主要是对屏幕的蓝光进行调节,并降低手机亮度,调节更适合的颜色来保护眼睛,始终让眼睛保持舒适状态,减小电脑屏幕辐射对眼睛造成干、痒、肿等视觉疲劳症状。而且在夜间使用更为舒适,并具有智能疲劳提醒、定期健康分析,是日常生活中实用的护眼软件、健康软件。如果对这方面有需求的可以下载体验下。 护眼宝 v3.1更新日志 1、优化界面; 2、新增颜色调节 3、新增健康统计 4、新增眼保健操 5、新增健康咨询 6、修复BUG 护眼宝截图

2019-07-11
23KB
中标普华Linux操作系统解决方案

基于中标普华Linux系统的金融领域整体解决方案在陕西建行的实际生产环境中得以应用示范,其性能稳定、界面友好、安全可靠,有力地支撑了陕 西建行各项业务健康持续的发展。实践证明,在金融领域使用Linux系统是安全高效、切实可行的。陕西建行广泛使用中标普华Linux操作系统,使得该操 作系统在金融领域的应用真正从试验环境走向生产环境,为Linux操作系统在金融领域的广泛应用奠定了坚实的基础。

2020-03-04
img
eliming

关注 私信 TA的资源

上传资源赚积分,得勋章
相关内容推荐