(译者序) Robert C. Martin - <<UML for Java Programmers>>
(P29)
每一个软件模块都具有三个职责:
1. 运行起来所完成的功能;
2. 应对变化;
3. 能够使其阅读者理解;
(P76) “在准备战役时,我发现计划本身总是无用的,但是做计划却是绝对必要的。” —— 艾森豪威尔;
(P83) 当同样的代码以稍有不同的形式一再出现时,就表示开发人员忽视了抽象;
(P87) 我们生活在一个需求不断变化的世界中,我们的工作是要保证我们的软件能够经受得住那些变化;
(P92) SRP是所有原则中最简单的原则之一,也是最难正确运用的原则之一;
(P94)
OCP - 使用“抽象”来实现;
模块可能对抽象体进行操作。由于模块依赖于一个固定的抽象体,所以它对于更改可以是封闭的。同时,通过从这个抽象体派生,可以扩展此模块的行为;
(P101)
OCP是面向对象设计的核心所在。遵循这个原则可以带来面向对象技术所声称的巨大好处:灵活性、可重用性以及可维护性;
开发人员应该仅仅对程序中呈现出频繁变化的那些部分做出抽象;
拒绝不成熟的抽象和抽象本身一样重要;
(P114)
OCP是OOD中很多说话的核心;
LSP是使OCP成为可能的主要原则之一;
(P115) DIP是框架设计的核心原则;
(P116) 每个较高层次都为它所需要的服务声明一个抽象接口。较低的层次实现了这些抽象接口。每个高层类都通过该抽象接口使用下一层。这样高层就不依赖于低层,低层反而依赖于在高层中声明的抽象服务接口;
(P117)
“依赖于抽象”:
1. 任何变量都不应该持有一个指向具体类的引用;
2. 任何类都不应该从具体类派生;
3. 任何方法都不应该重写它的任何基类中已经实现了的方法;
(P138) 构建模型就是为了弄清楚某些东西是否可行;
(P139) 当模型比要构建的真实实体便宜地多时,我们就会使用模型来研究设计;
(P179) UML中的所有箭头都指向源代码依赖的方向;
(P229) “优先使用对象组合而不是类继承”;
(P230)
Template Method - 使用继承来解决问题;
Strategy - 使用委托来解决问题;
(P323) 任何一行使用了new关键字的代码都违反了DIP;
分享到:
相关推荐
本书结构清晰,示例丰富,实践性强,适用于所有Web 开发和设计人员。 编辑推荐 Amazon盛誉图书,业界专家十余年功力结晶,参透CSS与HTML,350多种可以立刻用于实战的设计模式,Web设计与开发人员的必备参考书。 ...
敏捷开发方法非常时候与iOS开发,广大读者能够认真学习。开发采用的架构是分层设计的,对于iOS开发也是非常重要的。 本书没有包括多媒体等知识,我们会在另外一本iOS游戏开发书中介绍,具体进展请读者关注我们智捷...
模仿书摘中心的展开按钮封装的一个控件,轻量级好用,不支持cocoaPod。
《JavaScript语言精髓与编程实践》精选版 作者 周爱民 《JavaScript语言精髓与编程实践》这本书,最初的名字是叫《动态函数式语言精髓与编程实践》,这是作者写本书的原意。确切地说,作者并非是想讨论JavaScript...
Web标准由一系列标准组合而成,其核心理念是将网页的结构、样式和行为分离开来,所以它可以分为三大部分:结构标准、样式标准和行为标准
初中语文文摘文苑微书摘
使用Web Service--基于客户端服务器结构网络通信。
可以导出kindle多看系统中的书摘,输出为txt文档,非常方便。
2021年读书-《心智、知识与道德》书摘:社会主义计算大论战.docx
初中语文文摘文苑微言与书摘
这是一个简单的应用程序,您可以在其中添加,编辑,删除和搜索书摘。 它是使用Python,Tkinter和Pmw创建的。 推荐给想要通过添加任何书摘来轻松搜索大量书籍的学生。
全新思维的书摘,看看别人怎么解读这本书,希望能对您有点帮助
WPF in action 英文版书摘。截止到12章。后面章节待续。
精神分析案例解析书摘.pdf
书摘
初中语文文摘生活名人名言解读_书摘
韦尔奇新着《赢》经典书摘.EXE
《趁年轻 折腾吧》,作者:@袁岳;设计:@刘健亮,ppt书摘,ppt读书笔记。