diff --git a/notes/Java_设计模式.md b/notes/Java_设计模式.md
index 203f0f6..9e0904f 100644
--- a/notes/Java_设计模式.md
+++ b/notes/Java_设计模式.md
@@ -1,5 +1,46 @@
# 设计模式
+
+
+
+
+
+
## 软件设计的原则
### 1. 开闭原则
@@ -392,7 +433,9 @@ Exception in thread "main" java.lang.IllegalArgumentException: Cannot reflective
### 2.2 示例
-
+
+
+
产品抽象类:
@@ -471,7 +514,9 @@ public Phone getPhone(Class extends Phone> phoneClass) {
### 3.2 示例
-
+
+
+
产品抽象类:
@@ -552,7 +597,9 @@ public class ZTest {
### 4.2 示例
-
+
+
+
充电器抽象类:
@@ -644,7 +691,9 @@ public class ZTest {
### 5.2 示例
-
+
+
+
产品实体类:
@@ -986,7 +1035,9 @@ service.compute();
将 220V 的电流通过适配器转换为对应规格的电流给手机充电:
-
+
+
+
电源类:
@@ -1059,7 +1110,9 @@ public class ZTest {
将一个图形的形状和颜色进行分离,从而可以通过组合来实现的不同的效果:
-
+
+
+
颜色的抽象和实现:
@@ -1152,7 +1205,9 @@ new Round().setColor(new Yellow()).getDesc();
模拟 Linux 文件系统:
-
+
+
+
组件类,定义文件夹和文件的所有操作:
@@ -1279,7 +1334,9 @@ nginx.cat();
在购买手机后,你可能还会购买屏幕保护膜,手机壳等来进行装饰:
-
+
+
+
手机抽象类及其实现:
@@ -1398,7 +1455,9 @@ public class ZTest {
模仿电商购物下单,此时内部需要调用支付子系统,仓储子系统,物流子系统,而这些细节对用户都是屏蔽的:
-
+
+
+
安全检查系统:
@@ -1484,7 +1543,9 @@ XXX手机已经发货,请注意查收...
这里以创建 PPT 模板为例,相同类型的 PPT 模板不再重复创建:
-
+
+
+
PPT 抽象类:
@@ -1617,7 +1678,9 @@ public class ZTest {
假设多个用户都关注某一个商家,当商家发出降价等通知时,所有用户都应该收到:
-
+
+
+
被观察者接口及商家实现类:
@@ -1718,7 +1781,9 @@ business.notifyObservers("商品促销通知");
假设一个正常的流程,根据请假天数的不同,需要不同的领导共同审批:
-
+
+
+
申请单:
@@ -1831,7 +1896,9 @@ groupLeader.approval(new Application("婚假单", 10));
手机一般都有电池,摄像头等模块,但不是所有手机都有 NFC 模块,如果采用模板模式构建,则相关代码如下:
-
+
+
+
抽象的父类:
@@ -1932,7 +1999,9 @@ smartPhone.assembling();
假设公司需要根据营业额的不同来选择不同的员工激励策略:
-
+
+
+
策略接口及其实现类:
@@ -2016,7 +2085,9 @@ public static void main(String[] args) {
假设我们正在开发一个播放器,它有如下图所示四种基本的状态:播放状态,关闭状态,暂停状态,加速播放状态。这四种状态间可以相互转换,但存在一定的限制,比如在关闭或者暂停状态下,都不能加速视频,采用状态模式来实现该播放器的相关代码如下:
-
+
+
+
定义状态抽象类:
@@ -2380,7 +2451,9 @@ while (iterator.hasNext()) {
通常不同级别的员工对于公司档案的访问权限是不同的,为方便理解,如下图所示假设只有公开和加密两种类型的档案,并且只有总经理和部门经理才能进入档案室:
-
+
+
+
定义档案类及其实现类: