《修炼Java开发技术 在架构中体验设计模式和算法之美》 - 书摘精要
(P7)
建议直接加入到软件公司中去,这样会学到很多实际的东西;
程序员最主要的发展方向是资深技术专家,无论是 Java、.Net 还是数据库领域,都要首先成为专家,然后才可能继续发展为架构师;
增强工作的主动性和参与性;
只有拥有更高的眼界,才能谋取更大的发展;
(P10)
跳槽是需要本钱的,这个本钱就是你积累的工作经验、工作业绩、技术水平和工作能力;
(P11)
一个好的领域专家一定是业务领域的架构师,他能够给出某一个业务领域的架构,我们可以称为业务架构,只有技术架构和业务架构紧密结合,才有可能真正创造出一个好的系统;
(P16)
系统应该随着规模的变化,不断演进。这样的系统才是科学的、经济的;
(P22)
在设计模式中,所有的设计模式都遵循“单一职责原则”这一原则;
(P23)
“单一职责”也就是“单一变化原因”;
“职责”也就是引起类变化的原因;
(P28)
抽象层次应该不依赖于具体的实现细节,这样才能保证系统的可复用性和可维护性;
抽象即“抽象类”或“接口”,两者是不能够实例化的;
如果没有实现“依赖注入原则”,那么也就意味着“开闭原则(对扩展开放,对修改关闭)”也无法实现;
(P41)
资深的程序员都会看重数据结构和算法作用,水平越高,就越能理解算法的重要性;
(P49)
设计模式使代码编制能真正地工程化,它是软件工程的基石;
(P57)
“简单工厂”的方法通常都是静态的,所以也被称为“静态工厂”;
一个“简单工厂”,理论上可以构造任何东西,所以又被称为“万能工厂”;
在“简单工厂”里面可以只有一个方法,也可以有很多这样创建的方法;
(P58)
“接口”就是“实现类”对外的外观;
“接口”是系统可插拔性的保证;
(P67)
“工厂方法模式”是类的创建模式,又叫虚拟构造器(Virtual Constructor)模式或者多态性工厂(Polymorphic Factory)模式;
(P68)
在“工厂方法模式”中一般都有一个平行的等级结构,也就是说,工厂和产品是对应的。抽象工厂对应抽象产品,具体工厂对应具体产品;
(P110)
单例模式的本质是控制实例数目;
(P116)
在“建造者模式”里,有个指导者,由指导者来管理建造者,用户是与指导者相互联系,指导者联系建造者,最后得到产品;
(P142)
建议不要混合使用深拷贝和浅拷贝,特别是涉及到类的继承,父类有多个引用的情况就非常的复杂,建议的方案是深拷贝和浅拷贝分开实现;
(P162)
在适配器模式中,实现了由“源”到“目标”的适配,适配器负责把“源”过渡到“目标”;
(P174)
将两个角色之间的继承关系改为聚合关系,就是将它们之间的强关联改换为弱关联;
(P185)
在桥梁模式中的桥接是单向的,也就是只能是抽象部分的对象去使用具体实现部分的对象,而不能反过来;
(P194)
从更本质的角度来看,基本上只要是面向抽象编写的 Java 程序,都可以视为是桥梁模式的应用,都是让抽象和实现相分离,从而使它们能独立地变化;
(P254)
享元模式是一个提高程序效率和性能的模式,会大大地加快程序的运行速度;
(P262)
享元模式是一种缓存技术;
(P460)
状态模式的引入免除了代码中复杂而冗长的逻辑判断语句;
《修炼Java开发技术 在架构中体验设计模式和算法之美》 - 书摘精要的更多相关文章
- 【EatBook】-NO.2.EatBook.2.JavaArchitecture.1.001-《修炼Java开发技术在架构中体验设计模式和算法之美》-
1.0.0 Summary Tittle:[EatBook]-NO.2.EatBook.2.JavaArchitecture.1.001-<修炼Java开发技术在架构中体验设计模式和算法之美&g ...
- 测试开发技术:DOM中 innerHTML、innerText、outerHTML、outerText的区别
测试开发技术:DOM中 innerHTML.innerText.outerHTML.outerText的区别 我们在做web自动化的过程中通过dom处理web页面元素,那么你就要了解innerHT ...
- Java基础语法(8)-数组中的常见排序算法
title: Java基础语法(8)-数组中的常见排序算法 blog: CSDN data: Java学习路线及视频 1.基本概念 排序: 是计算机程序设计中的一项重要操作,其功能是指一个数据元素集合 ...
- Java开发技术大揭底——让你认知自己技术上的缺陷,成为架构师
一.分布式架构体系 分布式怎么来的.传统的电信.银行业,当业务量大了之后,普通服务器CPU/IO/网络到了100%,请求太慢怎么办?最直接的做法,升级硬件,反正也不缺钱,IBM小型机,大型机,采购了堆 ...
- 2020 年最流行的 Java 开发技术
不知不觉间,2020 年即将于十几天之后到来,作为技术圈中你,准备好迎接最新的变化了吗?在本文中,我们将以编程界最常用的编程语言 Java 为例,分享最为主流的技术与工具. 作者 | divyesh. ...
- 手机端UC浏览器,在java开发的下载功能中存在的问题?
在java web开发中,不同浏览器对下载文件的格式有不同的要求,有时会出现视频,音频等文件无法下载的问题.我在开发中,也遇到类似的问题,觉得很苦恼. 经过百度和请教学习,得到2个解决方案. 首先得到 ...
- 个人总结的一个中高级Java开发工程师或架构师需要掌握哪几点!
今天,我来唠叨几句~~ 知识改变命运,对于Java程序员来说,技术不断更新,只有及时充电,才能不被市场淘汰.今天为大家分享Java程序员学习的6个小技巧. 1.一定要看书 现在学习Java变得比以前容 ...
- Java开发技术
1.基础技术 数据结构与算法 逻辑结构:数据对象中的数据元素之间的逻辑关系 1.集合结构:集合结构中的数据元素除了同属一个集合外,没有其他关系. 2.线性结构:线性结构中的数据元素之间是一对一的关 ...
- 【饿了么】招聘Java开发工程师、架构师
3年以上实际工作经验,本科及以上学历. 具有良好的编程基础( 比如熟悉HTTP.多线程.Socket.JVM.基本的数据结构和算法等). 熟悉Java语言以及相关的服务器(比如Tomcat).工具(M ...
随机推荐
- iOS学习之移除Main.storyboard
每次使用Single View Application模板创建工程之后,总是会有一个Main.storyboard文件,那么,当我们使用代码布局的时候,很显然是不需要它的.那么,如何将它从工程中移除呢 ...
- vue-cli的utils.js文件详解
转载自:http://www.cnblogs.com/ye-hcj/p/7078047.html utils.js文件 // 引入nodejs路径模块var path = require('path' ...
- 236. Lowest Common Ancestor of a Binary Tree(最低公共祖先,难理解)
Given a binary tree, find the lowest common ancestor (LCA) of two given nodes in the tree. According ...
- hadoop nn 运维一例
nn1 崩溃之后,nn2变为active,但是nn1日志中有异常,处于standby状态的,无法响应读的操作 最后查出原因是因为fensing的问题.
- CAS单点登录的配置
先说单点登录是个啥? 单点登录主要用于多系统集成,即在多个系统中,用户只需要到一个中央服务器登录一次即可访问这些系统中的任何一个,无须多次登录. 配置的步骤如下: 1.生成安全证书 Cas serve ...
- 20145201 《Java程序设计》第二周学习总结
20145201 <Java程序设计>第二周学习总结 教材学习内容总结 本周学习了课本第三章内容,即JAVA基础语法. 3.1 类型.变量与运算符 基本类型:在java中基本类型主要可区分 ...
- 20145222 黄亚奇 《网络对抗》Exp8 Web基础
20145222 黄亚奇 <网络对抗>Exp8 Web基础 实践具体要求 (1).Web前端HTML(1分) 能正常安装.启停Apache.理解HTML,理解表单,理解GET与POST方法 ...
- 如何理解 Python 中的__init__
转自https://www.zhihu.com/question/46973549/answer/103805810 定义类的时候,若是添加__init__方法,那么在创建类的实例的时候,实例会自动调 ...
- Tomcat:解决Tomcat可以在eclipse启动,却无法显示默认页面的操作
解决Tomcat可以在eclipse启动,却无法显示默认页面的操作 今天在eclipse中配置好tomcat后访问不到它的主页,但是能运行自己的项目,一直找不到原因,百度之后最后解决了这个问题,总结如 ...
- @RequestMapping映射请求,@PathVariable,@RequestParam,@RequestHeader的使用
1.@RequestMapping Spring MVC 使用 @RequestMapping 注解为控制器指定可以处理哪些 URL 请求,在控制器的类定义及方法定义处都可标注. @RequestMa ...