(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开发技术 在架构中体验设计模式和算法之美》 - 书摘精要的更多相关文章

  1. 【EatBook】-NO.2.EatBook.2.JavaArchitecture.1.001-《修炼Java开发技术在架构中体验设计模式和算法之美》-

    1.0.0 Summary Tittle:[EatBook]-NO.2.EatBook.2.JavaArchitecture.1.001-<修炼Java开发技术在架构中体验设计模式和算法之美&g ...

  2. 测试开发技术:DOM中 innerHTML、innerText、outerHTML、outerText的区别

    测试开发技术:DOM中 innerHTML.innerText.outerHTML.outerText的区别   我们在做web自动化的过程中通过dom处理web页面元素,那么你就要了解innerHT ...

  3. Java基础语法(8)-数组中的常见排序算法

    title: Java基础语法(8)-数组中的常见排序算法 blog: CSDN data: Java学习路线及视频 1.基本概念 排序: 是计算机程序设计中的一项重要操作,其功能是指一个数据元素集合 ...

  4. Java开发技术大揭底——让你认知自己技术上的缺陷,成为架构师

    一.分布式架构体系 分布式怎么来的.传统的电信.银行业,当业务量大了之后,普通服务器CPU/IO/网络到了100%,请求太慢怎么办?最直接的做法,升级硬件,反正也不缺钱,IBM小型机,大型机,采购了堆 ...

  5. 2020 年最流行的 Java 开发技术

    不知不觉间,2020 年即将于十几天之后到来,作为技术圈中你,准备好迎接最新的变化了吗?在本文中,我们将以编程界最常用的编程语言 Java 为例,分享最为主流的技术与工具. 作者 | divyesh. ...

  6. 手机端UC浏览器,在java开发的下载功能中存在的问题?

    在java web开发中,不同浏览器对下载文件的格式有不同的要求,有时会出现视频,音频等文件无法下载的问题.我在开发中,也遇到类似的问题,觉得很苦恼. 经过百度和请教学习,得到2个解决方案. 首先得到 ...

  7. 个人总结的一个中高级Java开发工程师或架构师需要掌握哪几点!

    今天,我来唠叨几句~~ 知识改变命运,对于Java程序员来说,技术不断更新,只有及时充电,才能不被市场淘汰.今天为大家分享Java程序员学习的6个小技巧. 1.一定要看书 现在学习Java变得比以前容 ...

  8. Java开发技术

    1.基础技术 数据结构与算法   逻辑结构:数据对象中的数据元素之间的逻辑关系 1.集合结构:集合结构中的数据元素除了同属一个集合外,没有其他关系. 2.线性结构:线性结构中的数据元素之间是一对一的关 ...

  9. 【饿了么】招聘Java开发工程师、架构师

    3年以上实际工作经验,本科及以上学历. 具有良好的编程基础( 比如熟悉HTTP.多线程.Socket.JVM.基本的数据结构和算法等). 熟悉Java语言以及相关的服务器(比如Tomcat).工具(M ...

随机推荐

  1. kotlin写的几个小例子

    Kotlin-AdapterDemo kotlin语言下BaseAdapter,ArrayAdapter,SimpleAdapter,SimpleCursorAdapter四种适配器的示例 工具and ...

  2. image_Magic图片处理功能

    :] 来自为知笔记(Wiz)

  3. CodeForces - 995E Number Clicker (双向BFS)

    题意:给出u,v,p,对u可以进行三种变化: 1.u=(u+1)%p ; 2.u = (u+p-1)%p;  3.u = 模p下的逆元.问通过几步可以使u变成v,并且给出每一步的操作. 分析:朴素的b ...

  4. JS 原生JS 判断滚动条滑动到底部

    window.addEventListener("scroll", function(event) { var scrollTop = document.documentEleme ...

  5. 高通平台下安卓opencl小例子

    http://blog.csdn.net/wcj0626/article/details/26272019 先到高通的qdn下载adreno GPU SDK,里面有OpenCL的例子.https:// ...

  6. 【Flask】Flask Session操作

    ### session:1. session的基本概念:session和cookie的作用有点类似,都是为了存储用户相关的信息.不同的是,cookie是存储在本地浏览器,session是一个思路.一个 ...

  7. 使用John the ripper工具来尝试破解Linux密码

    这篇文章主要介绍了使用John the ripper工具来尝试破解Linux密码的方法,这款工具可能主要被用来破解系统用户的密码以获得文件操作权限,需要的朋友可以参考下 John有别于Hdra之类的工 ...

  8. Spring_事务-注解代码

    applicationContext.xml <?xml version="1.0" encoding="UTF-8"?><beans xml ...

  9. JAVA文件下载,页面显示另存为效果

    经过测试  firefox.QQ.IE 浏览器是可以的  chrome浏览器不行(直接下载了) 1. 系统框架springmvc+jsp 2. 后台servlet代码 @RequestMapping( ...

  10. Spring Boot 快速入门(IDEA)

    从字面理解,Boot是引导的意思,因此SpringBoot帮助开发者快速搭建Spring框架:SpringBoot帮助开发者快速启动一个Web容器:SpringBoot继承了原有Spring框架的优秀 ...