设计模式内容汇总

此专题中包含7种设计原则,23种设计模式的介绍。

设计模式是一套快被写烂了的编码技巧。随便找找都能找到大量的书和博客。但是基本上都是用很大的篇幅来介绍设计模式的实现、优点、缺点等等。举的一些例子也是与实际开发基本不相干的例子。基于此,我才决定写一系列设计模式的博文,不仅要把设计模式的原理讲清楚,还要结合实际,找出实际的应用案例。如哪些设计模式用在了Spring框架或MyBatis框架中,在我的职业生涯中,哪些业务场景用了哪些设计模式解决。理论结合实践学习起来才最有效。

所以我将本系列博文命名为《设计模式实践》,在后续的文章中我将结合市面上的优秀的设计模式相关的书、国内外一些博主关于设计模式的文章以及AI来全面的分析设计模式原理及其应用,同时结合今后参与的项目,不断完善案例。给大家带一套有深度的设计模式文章。

设计原则

阅读更多

Github上那些优秀的学习项目

coding-interview-university

Github地址:https://github.com/jwasham/coding-interview-university/tree/main

项目名称为编程面试大学,项目作者为了面试Google每天自学8~12小时,持续了8个月。作者提供了一份任务清单,每完成一项打钩。完成任务清单后可以让你轻松应对各种技术面试。作者还提醒

Warning

请注意: 你不需要像我一样那么努力学习。我在一些不必要的事情上浪费了很多时间。关于这个问题下面有更多信息。我会帮助你节省宝贵的时间,让你达到目标。 在这份清单内的主题会让你拥有足够的知识去面对几乎每家软件公司的技术面试,包括科技巨头:Amazon、Facebook、Google,以及 Microsoft。

阅读更多

关于 G1垃圾收集器、永久代和元空间(About G1 Garbage Collector, Permanent Generation and Metaspace)

Note

内容复制自 Oracle - Poonam Bajaj的博客,About G1 Garbage Collector, Permanent Generation and Metaspace. 目前此链接已无法访问,且无法从Oracle上查询到此篇文章。

以下为文章内容。内容为英文+翻译,翻译大部分内容为机翻,已通过人工校对对机翻不准确的内容做了修改。但限于本人翻译水平有限,不能保证翻译内容百分比正确,如有错误欢迎指正。

We received some questions around the G1 garbage collector and the use of Permanent Generation with it. There seems to be some confusion that the Hotspot JVM does not use permanent generation when G1 is used as the garbage collector. Here’s some clarification:

我们收到了一些关于 G1 垃圾收集器及其永久代使用的问题。当 G1 用作垃圾回收器时,Hotspot JVM 不使用永久代,这似乎有些混淆。以下是一些说明:

阅读更多

国外经典数学教材分享

推荐一些国外的数学教材。国外的教材,尤其是微积分,都是大部头,但是相对于国内的教材,更加通俗易懂。内容循序渐进,由浅入深,知识点讲的比较透。适合工科类的或者想要提升自己数学知识的同学学习,不适合数学专业的同学学习,如果你的数学天赋很好的话会觉得比较啰嗦,可能光一个问题的提出都用了好几页。请各位同学仔细甄别,选择适合自己的教材学习。国外的不一定就比国内的好。

阅读更多

最全电子书下载网站

虽然本文整理的网站不能说是最全的电子书网站,但是需要这几个网站即可获取大部分电子书。只要你在其他地方能找到的电子书,这里基本上都有。下面的这些网站都需要梯子才能访问。文章末尾有机场,你懂的!

z-library

世界上最大的电子书共享网站。根据Z-Library的说法,截至2022年6月12日,其共收录了10,456,034本书和84,837,646篇文章。Z-Library在其电子书搜索页面上宣称自己是“全球最大的数字图书馆”,并在文章搜索页面上称自身是“全球最大的科学文章存储库”。它原是创世纪图书馆的镜像网站,并从该图书馆获得大部分馆藏。

截止目前应该有2千万多本书

每日可现在10本电子书,不限速,捐款后无限制。

注意:z-lib.io,z-lib.id,zlibrary.to 都是假的站,是z-library的镜像站。

阅读更多

外刊杂志获取(经济学人、卫报、时代周刊等)

本文提供以下杂志的获取方式,

  • 经济学人(The Economist)
  • 科学美国人(Scientific American)
  • 卫报(Guardian)
  • 大西洋月刊(The Atlantic)
  • 连线(Wired)
  • 纽约客(New Yorker)
  • 时代周刊 (TIME)
  • 纽约书评(The New York Review of Books)

所有资料均整理自网络,本站不提供任何下载支持,如需下载请跳转至对应网站进行下载。同时也不对以下内容承担任何法律责任。如果以下内容侵犯到了您的权利,请联系本站删除。

阅读更多

职责链模式-Chain of Responsibility Pattern

序言

责任链模式(Chain of Responsibility Pattern)是一种行为型设计模式,类似于日常工作中的审批流,一个人审批完之后交给下一个人审批,两个人又相互不知道对方的存在。

责任链模式通过构建一个对象链来处理请求,每个对象都有可能处理这个请求,或者将请求传递给链上的下一个对象。这种模式赋予了对象处理请求的灵活性,同时解耦了发送者和接收者,使得请求的发送者和接收者不必知晓彼此的细节。

定义

Avoid coupling the sender of a request to its receiver by giving more than one object a chance to handle the request.
Chain the receiving objects and pass the request along the chain until an object handles it.

使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系。将这些对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止。

阅读更多

提取Spring Expression Language(SPEL)表达式中的变量

SPEL(Spring Expression Language)是Spring框架中的一种表达式语言,用于在运行时对对象图进行查询和操作。SPEL提供了一种简洁而强大的语法,允许开发人员在Spring应用程序中使用表达式来访问对象的属性、调用对象的方法、进行算术运算、逻辑运算等。

阅读更多

提取Apache Velocity模板中的变量

Apache Velocity是一个用于简化Java应用程序开发的开源模板引擎。它允许开发人员使用模板文件来生成文本文件,例如HTML网页、XML文件、邮件、SQL语句等。Velocity模板文件包含静态文本和用于填充数据的变量、条件语句和循环语句等。

目前Apache Velocity最新的版本为 2.3,最后更新时间为2021年3月7日。目前已经停止维护。

1
2
3
4
5
6
<dependency>
<groupId>org.apache.velocity</groupId>
<artifactId>velocity-engine-core</artifactId>
<version>2.3</version>
</dependency>

阅读更多

数据结构与算法基本概念

基本概念和术语

数据:(data)是对客观事物的符号表示,在计算机科学中是指所有能输入到计算机中并被计算机程序处理的符号的总称。

数据元素:(Data element)是数据的基本单位,在计算机程序中通常作为一个整体进行考虑和处理,一个数据元素可由若干个数据项 组成,数据项是构成数据元素不可分割的最小单位

数据对象: (Data Object)是性质相同的数据元素的集合是数据的一个子集

数据结构:(Data Structure)是相互之间存在一种或多种特定关系的数据元素的集合。数据元素之间的关系成为结构。(一组具有相同结构的值)

阅读更多