Skip to content

Instantly share code, notes, and snippets.

@xaolex
xaolex / Java装饰模式总结.md
Created April 10, 2019 02:28
Java装饰模式总结

Java装饰模式总结

1.什么是装饰模式

装饰模式(Decorator Pattern):动态地给一个对象增加一些额外的职责,就增加对象功能来说,装饰模式比生成子类实现更为灵活。装饰模式是一种对象结构型模式。

装饰模式可以在不改变一个对象本身功能的基础上给对象增加额外的新行为,在现实生活中,这种情况也到处存在,例如一张照片,我们可以不改变照片本身,给它增加一个相框,使得它具有防潮的功能,而且用户可以根据需要给它增加不同类型的相框,甚至可以在一个小相框的外面再套一个大相框。

装饰模式是一种用于替代继承的技术,它通过一种无须定义子类的方式来给对象动态增加职责,使用对象之间的关联关系取代类之间的继承关系。在装饰模式中引入了装饰类,在装饰类中既可以调用待装饰的原有类的方法,还可以增加新的方法,以扩充原有类的功能。

@xaolex
xaolex / Java状态模式总结.md
Last active July 31, 2021 03:02
Java状态模式总结

Java状态模式总结

1.什么是状态模式

状态模式(State Pattern):允许一个对象在其内部状态改变时改变它的行为,对象看起来似乎修改了它的类。其别名为状态对象(Objects for States),状态模式是一种对象行为型模式。

状态模式用于解决系统中复杂对象的状态转换以及不同状态下行为的封装问题。当系统中某个对象存在多个状态,这些状态之间可以进行转换,而且对象在不同状态下行为不相同时可以使用状态模式。状态模式将一个对象的状态从该对象中分离出来,封装到专门的状态类中,使得对象状态可以灵活变化,对于客户端而言,无须关心对象状态的转换以及对象所处的当前状态,无论对于何种状态的对象,客户端都可以一致处理。

2.状态模式的结构

@xaolex
xaolex / Java组合模式总结.md
Last active July 31, 2021 02:57
Java组合模式总结

Java组合模式总结

1.什么是组合模式

组合模式(Composite Pattern):组合多个对象形成树形结构以表示具有“整体—部分”关系的层次结构。组合模式对单个对象(即叶子对象)和组合对象(即容器对象)的使用具有一致性,组合模式又可以称为“整体—部分”(Part-Whole)模式,它是一种对象结构型模式。

对于树形结构,当容器对象(如文件夹)的某一个方法被调用时,将遍历整个树形结构,寻找也包含这个方法的成员对象(可以是容器对象,也可以是叶子对象)并调用执行,牵一而动百,其中使用了递归调用的机制来对整个结构进行处理。由于容器对象和叶子对象在功能上的区别,在使用这些对象的代码中必须有区别地对待容器对象和叶子对象,而实际上大多数情况下我们希望一致地处理它们,因为对于这些对象的区别对待将会使得程序非常复杂。组合模式为解决此类问题而诞生,它可以让叶子对象和容器对象的使用具有一致性。

2.组合模式的结构

@xaolex
xaolex / 2014-01-01-markdown-syntax.md
Last active December 25, 2018 12:59
Markdown语法笔记

Markdown简介

Markdown是一门为了实现易读易写的标记语言,而且可以转化为其他的标记语言(如HTML)。这种语言吸收了很多电子邮件中的纯文本标记的特性。除了标准语法,Markdown还有很多衍生的版本,例如PHP Markdown Extra,以及GitHub上的“GitHub Flavored Markdown”(GFM)。

而本文将介绍原始的标准Markdown语法,也就是Standard Markdown(SM)。dillinger是一个在线Markdown编辑器,你可以一边阅读本文,一边练练手。


标题

一级标题可以用任意数量=表示,二级标题用-表示,也可以用1到6个#表示一到六级标题。

@xaolex
xaolex / Thymeleaf笔记.md
Last active December 9, 2020 08:57
Thymeleaf笔记

Thymeleaf笔记

前言

目前项目用到Thymeleaf2.1的版本,所以笔记写的都是这个版本的内容,而现在最新版是Thymeleaf3.0,之后有空再看下有何变化。