diff --git a/.DS_Store b/.DS_Store
deleted file mode 100644
index e3930e44..00000000
Binary files a/.DS_Store and /dev/null differ
diff --git a/.gitignore b/.gitignore
index 07a840b1..efb4aab2 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,10 +1,3 @@
-# IntelliJ project files
-.idea
-*.iml
-out
-gen
-
-
### Java template
# Compiled class file
*.class
@@ -30,3 +23,24 @@ gen
# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
hs_err_pid*
+### Maven template
+target/
+pom.xml.tag
+pom.xml.releaseBackup
+pom.xml.versionsBackup
+pom.xml.next
+release.properties
+dependency-reduced-pom.xml
+buildNumber.properties
+.mvn/timing.properties
+# https://github.com/takari/maven-wrapper#usage-without-binary-jar
+.mvn/wrapper/maven-wrapper.jar
+
+### Example user template template
+### Example user template
+
+# IntelliJ project files
+.idea
+*.iml
+out
+gen
diff --git a/.idea/.gitignore b/.idea/.gitignore
new file mode 100644
index 00000000..73f69e09
--- /dev/null
+++ b/.idea/.gitignore
@@ -0,0 +1,8 @@
+# Default ignored files
+/shelf/
+/workspace.xml
+# Datasource local storage ignored files
+/dataSources/
+/dataSources.local.xml
+# Editor-based HTTP Client requests
+/httpRequests/
diff --git a/.idea/encodings.xml b/.idea/encodings.xml
new file mode 100644
index 00000000..da0415a0
--- /dev/null
+++ b/.idea/encodings.xml
@@ -0,0 +1,4 @@
+
+
+
+
\ No newline at end of file
diff --git a/.idea/inspectionProfiles/Project_Default.xml b/.idea/inspectionProfiles/Project_Default.xml
new file mode 100644
index 00000000..6560a989
--- /dev/null
+++ b/.idea/inspectionProfiles/Project_Default.xml
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/misc.xml b/.idea/misc.xml
new file mode 100644
index 00000000..132404bc
--- /dev/null
+++ b/.idea/misc.xml
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/runConfigurations.xml b/.idea/runConfigurations.xml
new file mode 100644
index 00000000..797acea5
--- /dev/null
+++ b/.idea/runConfigurations.xml
@@ -0,0 +1,10 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/README.md b/README.md
index a58fb0a4..be735807 100644
--- a/README.md
+++ b/README.md
@@ -1,15 +1 @@
-# 项目简介
-这是我Java学习过程中一些demo案例的汇总
-
-现主要有Java的IO、Netty入门demo、设计模式的demo、MyBatis、MyBatis-Plus、Spring、Spring MVC、Spring Boot等
-
-如:
-- BIO、NIO、AIO实现聊天室;----> main分支
-- Netty的入门上手demo;----> main分支
-- 设计模式的基本原则和23种常用设计模式等;----> main分支
-- mybatis的使用,mybatis-plus的使用,自定义持久层框架 ----> mybatis分支
-- spring的使用,自定义IOC和AOP -----> spring分支
-- springMVC的使用,自定义MVC框架 -----> springmvc分支
-- springboot的使用,springboot-Starter的自定义 ----> springboot分支
-- 自定义Tomcat -----> tomcat分支
--
\ No newline at end of file
+# 手写实现mini版Tomcat
\ No newline at end of file
diff --git a/pom.xml b/pom.xml
index 9fba93a3..284e70aa 100644
--- a/pom.xml
+++ b/pom.xml
@@ -4,8 +4,8 @@
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
4.0.0
- com.fangpeng
- study
+ com.lemon
+ Minicat
1.0-SNAPSHOT
@@ -14,72 +14,32 @@
-
- io.netty
- netty-all
- 4.1.56.Final
-
-
- org.projectlombok
- lombok
- 1.16.18
-
-
- com.google.code.gson
- gson
- 2.8.5
-
-
- com.google.guava
- guava
- 19.0
-
-
- ch.qos.logback
- logback-classic
- 1.2.3
-
-
- com.google.protobuf
- protobuf-java
- 3.11.3
-
-
- cglib
- cglib
- 2.2.2
-
dom4j
dom4j
1.6.1
- redis.clients
- jedis
- 3.3.0
-
-
-
-
- org.quartz-scheduler
- quartz
- 2.3.2
+ jaxen
+ jaxen
+ 1.1.6
+
-
-
-
- com.dangdang
- elastic-job-lite-core
- 2.1.5
-
-
- mysql
- mysql-connector-java
- 5.1.46
-
-
+
+
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+ 3.1
+
+ 8
+ 8
+ utf-8
+
+
+
+
\ No newline at end of file
diff --git a/src/.DS_Store b/src/.DS_Store
deleted file mode 100644
index 18fda3a5..00000000
Binary files a/src/.DS_Store and /dev/null differ
diff --git a/src/main/.DS_Store b/src/main/.DS_Store
deleted file mode 100644
index 8d3aae20..00000000
Binary files a/src/main/.DS_Store and /dev/null differ
diff --git a/src/main/java/.DS_Store b/src/main/java/.DS_Store
deleted file mode 100644
index d12931e9..00000000
Binary files a/src/main/java/.DS_Store and /dev/null differ
diff --git a/src/main/java/com/.DS_Store b/src/main/java/com/.DS_Store
deleted file mode 100644
index 31128fdc..00000000
Binary files a/src/main/java/com/.DS_Store and /dev/null differ
diff --git a/src/main/java/com/fangpeng/.DS_Store b/src/main/java/com/fangpeng/.DS_Store
deleted file mode 100644
index 3350dc02..00000000
Binary files a/src/main/java/com/fangpeng/.DS_Store and /dev/null differ
diff --git a/src/main/java/com/fangpeng/algorithm/hash/ConsistentHashNoVirtual.java b/src/main/java/com/fangpeng/algorithm/hash/ConsistentHashNoVirtual.java
deleted file mode 100644
index 59964ffc..00000000
--- a/src/main/java/com/fangpeng/algorithm/hash/ConsistentHashNoVirtual.java
+++ /dev/null
@@ -1,53 +0,0 @@
-package com.fangpeng.algorithm.hash;
-
-import java.util.SortedMap;
-import java.util.TreeMap;
-
-/**
- * @Description: 一致性hash算法
- * @Author : Lemon-CS
- * @Date : 2022年03月03日 9:18 下午
- */
-public class ConsistentHashNoVirtual {
-
- // 1. 初始化:把服务器节点IP的哈希值对应到哈希环上
- // 2. 针对客户端IP求出hash值
- // 3. 针对客户端,找到能够处理当前客户端请求的服务器(哈希环上顺时针最近)
- public static void main(String[] args) {
- // step1 初始化:把服务器节点IP的哈希值对应到哈希环上
- // 定义服务器ip
- String[] tomcatServers = new String[]{"123.111.0.0","123.101.3.1","111.20.35.2","123.98.26.3"};
-
- SortedMap hashServerMap = new TreeMap<>();
-
- for (String tomcatServer : tomcatServers) {
- // 求出每一个ip的hash值,对应到hash环上,存储hash值与ip的对应关系
- int serverHash = Math.abs(tomcatServer.hashCode());
- // 存储hash值与ip的对应关系
- hashServerMap.put(serverHash, tomcatServer);
- }
-
- // step2 针对客户端IP求出hash值
- // 定义客户端IP
- String[] clients = new String[]{"10.78.12.3","113.25.63.1","126.12.3.8"};
-
- for (String client : clients) {
- int clientHash = Math.abs(client.hashCode());
- //step3 针对客户端,找到能够处理当前客户端请求的服务器(哈希环上顺时针最近)
- // 根据客户端ip的哈希值去找出哪一个服务器节点能够处理()
- SortedMap tailMap = hashServerMap.tailMap(clientHash);
-
- if (tailMap.isEmpty()) {
- // 取哈希环上的顺时针第一台服务器
- Integer firstKey = hashServerMap.firstKey();
- System.out.println("==========>>>>客户端:" + client + " 被路由到服务器:" + hashServerMap.get(firstKey));
- } else {
- // 取哈希环上的顺时针比它大的第一台服务器
- Integer nextKey = tailMap.firstKey();
- System.out.println("==========>>>>客户端:" + client + " 被路由到服务器:" + hashServerMap.get(nextKey));
- }
- }
-
- }
-
-}
diff --git a/src/main/java/com/fangpeng/algorithm/hash/ConsistentHashWithVirtual.java b/src/main/java/com/fangpeng/algorithm/hash/ConsistentHashWithVirtual.java
deleted file mode 100644
index 26858639..00000000
--- a/src/main/java/com/fangpeng/algorithm/hash/ConsistentHashWithVirtual.java
+++ /dev/null
@@ -1,60 +0,0 @@
-package com.fangpeng.algorithm.hash;
-
-
-import java.util.SortedMap;
-import java.util.TreeMap;
-
-/**
- * @Description: TODO
- * @Author : Lemon-CS
- * @Date : 2022年03月03日 9:35 下午
- */
-public class ConsistentHashWithVirtual {
-
- public static void main(String[] args) {
-
- // step1 初始化:把服务器节点IP的哈希值对应到哈希环上
- // 定义服务器ip
- String[] tomcatServers = new String[]{"123.111.0.0","123.101.3.1","111.20.35.2","123.98.26.3"};
-
- SortedMap hashServerMap = new TreeMap<>();
-
- // 定义针对每个真实服务器虚拟出来几个节点
- int virtaulCount = 3;
-
-
- for(String tomcatServer: tomcatServers) {
- // 求出每一个ip的hash值,对应到hash环上,存储hash值与ip的对应关系
- int serverHash = Math.abs(tomcatServer.hashCode());
- // 存储hash值与ip的对应关系
- hashServerMap.put(serverHash,tomcatServer);
-
- // 处理虚拟节点
- for(int i = 0; i < virtaulCount; i++) {
- int virtualHash = Math.abs((tomcatServer + "#" + i).hashCode());
- hashServerMap.put(virtualHash,"----由虚拟节点"+ i + "映射过来的请求:"+ tomcatServer);
- }
-
- }
-
-
- // step2 针对客户端IP求出hash值
- // 定义客户端IP
- String[] clients = new String[]{"10.78.12.3","113.25.63.1","126.12.3.8"};
- for(String client : clients) {
- int clientHash = Math.abs(client.hashCode());
- // step3 针对客户端,找到能够处理当前客户端请求的服务器(哈希环上顺时针最近)
- // 根据客户端ip的哈希值去找出哪一个服务器节点能够处理()
- SortedMap integerStringSortedMap = hashServerMap.tailMap(clientHash);
- if(integerStringSortedMap.isEmpty()) {
- // 取哈希环上的顺时针第一台服务器
- Integer firstKey = hashServerMap.firstKey();
- System.out.println("==========>>>>客户端:" + client + " 被路由到服务器:" + hashServerMap.get(firstKey));
- }else{
- Integer nextKey = integerStringSortedMap.firstKey();
- System.out.println("==========>>>>客户端:" + client + " 被路由到服务器:" + hashServerMap.get(nextKey));
- }
- }
- }
-
-}
diff --git a/src/main/java/com/fangpeng/algorithm/hash/GenetalHash.java b/src/main/java/com/fangpeng/algorithm/hash/GenetalHash.java
deleted file mode 100644
index f8467f98..00000000
--- a/src/main/java/com/fangpeng/algorithm/hash/GenetalHash.java
+++ /dev/null
@@ -1,27 +0,0 @@
-package com.fangpeng.algorithm.hash;
-
-/**
- * @Description: 普通hash算法
- * @Author : Lemon-CS
- * @Date : 2022年03月03日 9:14 下午
- */
-public class GenetalHash {
-
- public static void main(String[] args) {
- // 定义客户端IP
- String[] clients = new String[]{"10.78.12.3","113.25.63.1","126.12.3.8"};
-
- // 定义服务器数量
- int serverCount = 5; // (编号对应0,1,2)
-
- // hash(ip) % node_counts = index
- //根据index锁定应该路由到的tomcat服务器
- for (String client : clients) {
- int hash = Math.abs(client.hashCode());
- int index = hash % serverCount;
- System.out.println("客户端:" + client + " 被路由到服务器编号为:" + index);
- }
-
- }
-
-}
diff --git a/src/main/java/com/fangpeng/design/pattern/adapter/class_adapter/Client.java b/src/main/java/com/fangpeng/design/pattern/adapter/class_adapter/Client.java
deleted file mode 100644
index ce6b6fa4..00000000
--- a/src/main/java/com/fangpeng/design/pattern/adapter/class_adapter/Client.java
+++ /dev/null
@@ -1,21 +0,0 @@
-package com.fangpeng.design.pattern.adapter.class_adapter;
-
-/**
- * @author 方鹏
- * @date 2022年02月07日 8:51 下午
- */
-public class Client {
- public static void main(String[] args) {
- //创建计算机对象
- Computer computer = new Computer();
- //读取SD卡中的数据
- String msg = computer.readSD(new SDCardImpl());
- System.out.println(msg);
-
- System.out.println("===============");
- //使用该电脑读取TF卡中的数据
- //定义适配器类
- String msg1 = computer.readSD(new SDAdapterTF());
- System.out.println(msg1);
- }
-}
diff --git a/src/main/java/com/fangpeng/design/pattern/adapter/class_adapter/Computer.java b/src/main/java/com/fangpeng/design/pattern/adapter/class_adapter/Computer.java
deleted file mode 100644
index a9a3ffeb..00000000
--- a/src/main/java/com/fangpeng/design/pattern/adapter/class_adapter/Computer.java
+++ /dev/null
@@ -1,18 +0,0 @@
-package com.fangpeng.design.pattern.adapter.class_adapter;
-
-/**
- * 计算机类
- * @author 方鹏
- * @date 2022年02月07日 8:42 下午
- */
-public class Computer {
-
- //从SD卡中读取数据
- public String readSD(SDCard sdCard) {
- if(sdCard == null) {
- throw new NullPointerException("sd card is null");
- }
- return sdCard.readSD();
- }
-
-}
diff --git a/src/main/java/com/fangpeng/design/pattern/adapter/class_adapter/SDAdapterTF.java b/src/main/java/com/fangpeng/design/pattern/adapter/class_adapter/SDAdapterTF.java
deleted file mode 100644
index ecdc9ce5..00000000
--- a/src/main/java/com/fangpeng/design/pattern/adapter/class_adapter/SDAdapterTF.java
+++ /dev/null
@@ -1,20 +0,0 @@
-package com.fangpeng.design.pattern.adapter.class_adapter;
-
-/**
- * 适配器类
- * @author 方鹏
- * @date 2022年02月07日 8:47 下午
- */
-public class SDAdapterTF extends TFCardImpl implements SDCard {
- @Override
- public String readSD() {
- System.out.println("adapter read tf card");
- return readTF();
- }
-
- @Override
- public void writeSD(String msg) {
- System.out.println("adapter write tf card");
- writeTF(msg);
- }
-}
diff --git a/src/main/java/com/fangpeng/design/pattern/adapter/class_adapter/SDCard.java b/src/main/java/com/fangpeng/design/pattern/adapter/class_adapter/SDCard.java
deleted file mode 100644
index 6493462d..00000000
--- a/src/main/java/com/fangpeng/design/pattern/adapter/class_adapter/SDCard.java
+++ /dev/null
@@ -1,15 +0,0 @@
-package com.fangpeng.design.pattern.adapter.class_adapter;
-
-/*
- * 目标接口
- * @author 方鹏
- * @date 2022/2/7 8:43 下午
- */
-public interface SDCard {
-
- //从SD卡中读取数据
- String readSD();
- //往SD卡中写数据
- void writeSD(String msg);
-
-}
diff --git a/src/main/java/com/fangpeng/design/pattern/adapter/class_adapter/SDCardImpl.java b/src/main/java/com/fangpeng/design/pattern/adapter/class_adapter/SDCardImpl.java
deleted file mode 100644
index df916c37..00000000
--- a/src/main/java/com/fangpeng/design/pattern/adapter/class_adapter/SDCardImpl.java
+++ /dev/null
@@ -1,18 +0,0 @@
-package com.fangpeng.design.pattern.adapter.class_adapter;
-
-/**
- * 具体的SD卡
- * @author 方鹏
- * @date 2022年02月07日 8:47 下午
- */
-public class SDCardImpl implements SDCard {
-
- public String readSD() {
- String msg = "SDCard read msg : hello word SD";
- return msg;
- }
-
- public void writeSD(String msg) {
- System.out.println("SDCard write msg :" + msg);
- }
-}
diff --git a/src/main/java/com/fangpeng/design/pattern/adapter/class_adapter/TFCard.java b/src/main/java/com/fangpeng/design/pattern/adapter/class_adapter/TFCard.java
deleted file mode 100644
index f1ff5653..00000000
--- a/src/main/java/com/fangpeng/design/pattern/adapter/class_adapter/TFCard.java
+++ /dev/null
@@ -1,15 +0,0 @@
-package com.fangpeng.design.pattern.adapter.class_adapter;
-
-/*
- * 适配者类的接口
- * @author 方鹏
- * @date 2022/2/7 8:44 下午
- */
-public interface TFCard {
-
- //从TF卡中读取数据
- String readTF();
- //往TF卡中写数据
- void writeTF(String msg);
-
-}
diff --git a/src/main/java/com/fangpeng/design/pattern/adapter/class_adapter/TFCardImpl.java b/src/main/java/com/fangpeng/design/pattern/adapter/class_adapter/TFCardImpl.java
deleted file mode 100644
index 3c1cda80..00000000
--- a/src/main/java/com/fangpeng/design/pattern/adapter/class_adapter/TFCardImpl.java
+++ /dev/null
@@ -1,19 +0,0 @@
-package com.fangpeng.design.pattern.adapter.class_adapter;
-
-/**
- * 适配者类
- * @author 方鹏
- * @date 2022年02月07日 8:45 下午
- */
-public class TFCardImpl implements TFCard {
- @Override
- public String readTF() {
- String msg = "TFCard read msg : hello word TFcard";
- return msg;
- }
-
- @Override
- public void writeTF(String msg) {
- System.out.println("TFCard write msg :" + msg);
- }
-}
diff --git a/src/main/java/com/fangpeng/design/pattern/adapter/object_adapter/Client.java b/src/main/java/com/fangpeng/design/pattern/adapter/object_adapter/Client.java
deleted file mode 100644
index 48ed6264..00000000
--- a/src/main/java/com/fangpeng/design/pattern/adapter/object_adapter/Client.java
+++ /dev/null
@@ -1,24 +0,0 @@
-package com.fangpeng.design.pattern.adapter.object_adapter;
-
-/**
- * @author 方鹏
- * @date 2022年02月07日 8:51 下午
- */
-public class Client {
- public static void main(String[] args) {
- //创建计算机对象
- Computer computer = new Computer();
- //读取SD卡中的数据
- String msg = computer.readSD(new SDCardImpl());
- System.out.println(msg);
-
- System.out.println("===============");
- //使用该电脑读取TF卡中的数据
- //定义适配器类
- //使用该电脑读取TF卡中的数据
- //创建适配器类对象
- SDAdapterTF sdAdapterTF = new SDAdapterTF(new TFCardImpl());
- String msg1 = computer.readSD(sdAdapterTF);
- System.out.println(msg1);
- }
-}
diff --git a/src/main/java/com/fangpeng/design/pattern/adapter/object_adapter/Computer.java b/src/main/java/com/fangpeng/design/pattern/adapter/object_adapter/Computer.java
deleted file mode 100644
index 37272315..00000000
--- a/src/main/java/com/fangpeng/design/pattern/adapter/object_adapter/Computer.java
+++ /dev/null
@@ -1,18 +0,0 @@
-package com.fangpeng.design.pattern.adapter.object_adapter;
-
-/**
- * 计算机类
- * @author 方鹏
- * @date 2022年02月07日 8:42 下午
- */
-public class Computer {
-
- //从SD卡中读取数据
- public String readSD(SDCard sdCard) {
- if(sdCard == null) {
- throw new NullPointerException("sd card is null");
- }
- return sdCard.readSD();
- }
-
-}
diff --git a/src/main/java/com/fangpeng/design/pattern/adapter/object_adapter/SDAdapterTF.java b/src/main/java/com/fangpeng/design/pattern/adapter/object_adapter/SDAdapterTF.java
deleted file mode 100644
index f963eb7d..00000000
--- a/src/main/java/com/fangpeng/design/pattern/adapter/object_adapter/SDAdapterTF.java
+++ /dev/null
@@ -1,28 +0,0 @@
-package com.fangpeng.design.pattern.adapter.object_adapter;
-
-/**
- * 适配器类
- * @author 方鹏
- * @date 2022年02月07日 8:47 下午
- */
-public class SDAdapterTF implements SDCard {
-
- //声明适配者类
- private TFCard tfCard;
-
- public SDAdapterTF(TFCard tfCard) {
- this.tfCard = tfCard;
- }
-
- @Override
- public String readSD() {
- System.out.println("adapter read tf card");
- return tfCard.readTF();
- }
-
- @Override
- public void writeSD(String msg) {
- System.out.println("adapter write tf card");
- tfCard.writeTF(msg);
- }
-}
diff --git a/src/main/java/com/fangpeng/design/pattern/adapter/object_adapter/SDCard.java b/src/main/java/com/fangpeng/design/pattern/adapter/object_adapter/SDCard.java
deleted file mode 100644
index cfe17948..00000000
--- a/src/main/java/com/fangpeng/design/pattern/adapter/object_adapter/SDCard.java
+++ /dev/null
@@ -1,15 +0,0 @@
-package com.fangpeng.design.pattern.adapter.object_adapter;
-
-/*
- * 目标接口
- * @author 方鹏
- * @date 2022/2/7 8:43 下午
- */
-public interface SDCard {
-
- //从SD卡中读取数据
- String readSD();
- //往SD卡中写数据
- void writeSD(String msg);
-
-}
diff --git a/src/main/java/com/fangpeng/design/pattern/adapter/object_adapter/SDCardImpl.java b/src/main/java/com/fangpeng/design/pattern/adapter/object_adapter/SDCardImpl.java
deleted file mode 100644
index dd1964c1..00000000
--- a/src/main/java/com/fangpeng/design/pattern/adapter/object_adapter/SDCardImpl.java
+++ /dev/null
@@ -1,18 +0,0 @@
-package com.fangpeng.design.pattern.adapter.object_adapter;
-
-/**
- * 具体的SD卡
- * @author 方鹏
- * @date 2022年02月07日 8:47 下午
- */
-public class SDCardImpl implements SDCard {
-
- public String readSD() {
- String msg = "SDCard read msg : hello word SD";
- return msg;
- }
-
- public void writeSD(String msg) {
- System.out.println("SDCard write msg :" + msg);
- }
-}
diff --git a/src/main/java/com/fangpeng/design/pattern/adapter/object_adapter/TFCard.java b/src/main/java/com/fangpeng/design/pattern/adapter/object_adapter/TFCard.java
deleted file mode 100644
index 0593fceb..00000000
--- a/src/main/java/com/fangpeng/design/pattern/adapter/object_adapter/TFCard.java
+++ /dev/null
@@ -1,15 +0,0 @@
-package com.fangpeng.design.pattern.adapter.object_adapter;
-
-/*
- * 适配者类的接口
- * @author 方鹏
- * @date 2022/2/7 8:44 下午
- */
-public interface TFCard {
-
- //从TF卡中读取数据
- String readTF();
- //往TF卡中写数据
- void writeTF(String msg);
-
-}
diff --git a/src/main/java/com/fangpeng/design/pattern/adapter/object_adapter/TFCardImpl.java b/src/main/java/com/fangpeng/design/pattern/adapter/object_adapter/TFCardImpl.java
deleted file mode 100644
index 128ff1cf..00000000
--- a/src/main/java/com/fangpeng/design/pattern/adapter/object_adapter/TFCardImpl.java
+++ /dev/null
@@ -1,19 +0,0 @@
-package com.fangpeng.design.pattern.adapter.object_adapter;
-
-/**
- * 适配者类
- * @author 方鹏
- * @date 2022年02月07日 8:45 下午
- */
-public class TFCardImpl implements TFCard {
- @Override
- public String readTF() {
- String msg = "TFCard read msg : hello word TFcard";
- return msg;
- }
-
- @Override
- public void writeTF(String msg) {
- System.out.println("TFCard write msg :" + msg);
- }
-}
diff --git a/src/main/java/com/fangpeng/design/pattern/bridge/AviFile.java b/src/main/java/com/fangpeng/design/pattern/bridge/AviFile.java
deleted file mode 100644
index 78d05ac5..00000000
--- a/src/main/java/com/fangpeng/design/pattern/bridge/AviFile.java
+++ /dev/null
@@ -1,13 +0,0 @@
-package com.fangpeng.design.pattern.bridge;
-
-/**
- * avi视频文件(具体的实现化角色)
- * @author 方鹏
- * @date 2022年02月08日 1:28 下午
- */
-public class AviFile implements VideoFile {
- @Override
- public void decode(String fileName) {
- System.out.println("avi视频文件 :" + fileName);
- }
-}
diff --git a/src/main/java/com/fangpeng/design/pattern/bridge/Client.java b/src/main/java/com/fangpeng/design/pattern/bridge/Client.java
deleted file mode 100644
index 632d5f31..00000000
--- a/src/main/java/com/fangpeng/design/pattern/bridge/Client.java
+++ /dev/null
@@ -1,16 +0,0 @@
-package com.fangpeng.design.pattern.bridge;
-
-/**
- * @author 方鹏
- * @date 2022年02月08日 1:32 下午
- */
-public class Client {
-
- public static void main(String[] args) {
- //创建mac系统对象
- OpratingSystem system = new Mac(new AviFile());
- //使用操作系统播放视频文件
- system.play("战狼3");
- }
-
-}
diff --git a/src/main/java/com/fangpeng/design/pattern/bridge/Mac.java b/src/main/java/com/fangpeng/design/pattern/bridge/Mac.java
deleted file mode 100644
index 43185840..00000000
--- a/src/main/java/com/fangpeng/design/pattern/bridge/Mac.java
+++ /dev/null
@@ -1,18 +0,0 @@
-package com.fangpeng.design.pattern.bridge;
-
-/**
- * Mac操作系统(扩展抽象化角色)
- * @author 方鹏
- * @date 2022年02月08日 1:32 下午
- */
-public class Mac extends OpratingSystem {
-
- public Mac(VideoFile videoFile) {
- super(videoFile);
- }
-
- @Override
- public void play(String fileName) {
- videoFile.decode(fileName);
- }
-}
diff --git a/src/main/java/com/fangpeng/design/pattern/bridge/OpratingSystem.java b/src/main/java/com/fangpeng/design/pattern/bridge/OpratingSystem.java
deleted file mode 100644
index bfa1ba17..00000000
--- a/src/main/java/com/fangpeng/design/pattern/bridge/OpratingSystem.java
+++ /dev/null
@@ -1,19 +0,0 @@
-package com.fangpeng.design.pattern.bridge;
-
-/**
- * 抽象的操作系统类(抽象化角色)
- * @author 方鹏
- * @date 2022年02月08日 1:29 下午
- */
-public abstract class OpratingSystem {
-
- //声明videFile变量
- protected VideoFile videoFile;
-
- public OpratingSystem(VideoFile videoFile) {
- this.videoFile = videoFile;
- }
-
- public abstract void play(String fileName);
-
-}
diff --git a/src/main/java/com/fangpeng/design/pattern/bridge/RmvbFile.java b/src/main/java/com/fangpeng/design/pattern/bridge/RmvbFile.java
deleted file mode 100644
index 54e37123..00000000
--- a/src/main/java/com/fangpeng/design/pattern/bridge/RmvbFile.java
+++ /dev/null
@@ -1,13 +0,0 @@
-package com.fangpeng.design.pattern.bridge;
-
-/**
- * rmvb视频文件(具体的实现化角色)
- * @author 方鹏
- * @date 2022年02月08日 1:29 下午
- */
-public class RmvbFile implements VideoFile {
- @Override
- public void decode(String fileName) {
- System.out.println("rmvb视频文件 :" + fileName);
- }
-}
diff --git a/src/main/java/com/fangpeng/design/pattern/bridge/VideoFile.java b/src/main/java/com/fangpeng/design/pattern/bridge/VideoFile.java
deleted file mode 100644
index 6cdf1765..00000000
--- a/src/main/java/com/fangpeng/design/pattern/bridge/VideoFile.java
+++ /dev/null
@@ -1,13 +0,0 @@
-package com.fangpeng.design.pattern.bridge;
-
-/**
- * 视频文件(实现化角色)
- * @author 方鹏
- * @date 2022年02月08日 1:27 下午
- */
-public interface VideoFile {
-
- //解码功能
- void decode(String fileName);
-
-}
diff --git a/src/main/java/com/fangpeng/design/pattern/bridge/Windows.java b/src/main/java/com/fangpeng/design/pattern/bridge/Windows.java
deleted file mode 100644
index f2277275..00000000
--- a/src/main/java/com/fangpeng/design/pattern/bridge/Windows.java
+++ /dev/null
@@ -1,18 +0,0 @@
-package com.fangpeng.design.pattern.bridge;
-
-/**
- * 扩展抽象化角色(windows操作系统)
- * @author 方鹏
- * @date 2022年02月08日 1:30 下午
- */
-public class Windows extends OpratingSystem {
-
- public Windows(VideoFile videoFile) {
- super(videoFile);
- }
-
- @Override
- public void play(String fileName) {
- videoFile.decode(fileName);
- }
-}
diff --git a/src/main/java/com/fangpeng/design/pattern/builder/demo1/Bike.java b/src/main/java/com/fangpeng/design/pattern/builder/demo1/Bike.java
deleted file mode 100644
index abee7d97..00000000
--- a/src/main/java/com/fangpeng/design/pattern/builder/demo1/Bike.java
+++ /dev/null
@@ -1,30 +0,0 @@
-package com.fangpeng.design.pattern.builder.demo1;
-
-/**
- * 产品对象
- * @author 方鹏
- * @date 2022年02月07日 5:23 下午
- */
-public class Bike {
-
- private String frame;//车架
-
- private String seat;//车座
-
- public String getFrame() {
- return frame;
- }
-
- public void setFrame(String frame) {
- this.frame = frame;
- }
-
- public String getSeat() {
- return seat;
- }
-
- public void setSeat(String seat) {
- this.seat = seat;
- }
-
-}
diff --git a/src/main/java/com/fangpeng/design/pattern/builder/demo1/Builder.java b/src/main/java/com/fangpeng/design/pattern/builder/demo1/Builder.java
deleted file mode 100644
index a4a7e663..00000000
--- a/src/main/java/com/fangpeng/design/pattern/builder/demo1/Builder.java
+++ /dev/null
@@ -1,20 +0,0 @@
-package com.fangpeng.design.pattern.builder.demo1;
-
-/**
- * Builder
- * @author 方鹏
- * @date 2022年02月07日 5:24 下午
- */
-public abstract class Builder {
-
- //声明Bike类型的变量,并进行赋值
- protected Bike bike = new Bike();
-
- public abstract void buildFrame();
-
- public abstract void buildSeat();
-
- //构建自行车的方法
- public abstract Bike createBike();
-
-}
diff --git a/src/main/java/com/fangpeng/design/pattern/builder/demo1/Client.java b/src/main/java/com/fangpeng/design/pattern/builder/demo1/Client.java
deleted file mode 100644
index e8f474b5..00000000
--- a/src/main/java/com/fangpeng/design/pattern/builder/demo1/Client.java
+++ /dev/null
@@ -1,21 +0,0 @@
-package com.fangpeng.design.pattern.builder.demo1;
-
-
-/**
- * @author 方鹏
- * @date 2022年02月07日 5:30 下午
- */
-public class Client {
-
- public static void main(String[] args) {
- //创建指挥者对象
- Director director = new Director(new MobileBuilder());
-
- //让指挥者只会组装自行车
- Bike bike = director.construct();
-
- System.out.println(bike.getFrame());
- System.out.println(bike.getSeat());
- }
-
-}
diff --git a/src/main/java/com/fangpeng/design/pattern/builder/demo1/Director.java b/src/main/java/com/fangpeng/design/pattern/builder/demo1/Director.java
deleted file mode 100644
index 5ec7dae2..00000000
--- a/src/main/java/com/fangpeng/design/pattern/builder/demo1/Director.java
+++ /dev/null
@@ -1,23 +0,0 @@
-package com.fangpeng.design.pattern.builder.demo1;
-
-/**
- * @author 方鹏
- * @date 2022年02月07日 5:28 下午
- */
-public class Director {
-
- //声明builder类型的变量
- private Builder builder;
-
- public Director(Builder builder) {
- this.builder = builder;
- }
-
- //组装自行车的功能
- public Bike construct() {
- builder.buildFrame();
- builder.buildSeat();
- return builder.createBike();
- }
-
-}
diff --git a/src/main/java/com/fangpeng/design/pattern/builder/demo1/MobileBuilder.java b/src/main/java/com/fangpeng/design/pattern/builder/demo1/MobileBuilder.java
deleted file mode 100644
index 4a353703..00000000
--- a/src/main/java/com/fangpeng/design/pattern/builder/demo1/MobileBuilder.java
+++ /dev/null
@@ -1,23 +0,0 @@
-package com.fangpeng.design.pattern.builder.demo1;
-
-/**
- * MobileBuilder
- * @author 方鹏
- * @date 2022年02月07日 5:25 下午
- */
-public class MobileBuilder extends Builder {
- @Override
- public void buildFrame() {
- bike.setFrame("碳纤维车架");
- }
-
- @Override
- public void buildSeat() {
- bike.setSeat("真皮车座");
- }
-
- @Override
- public Bike createBike() {
- return bike;
- }
-}
diff --git a/src/main/java/com/fangpeng/design/pattern/builder/demo1/OfoBuilder.java b/src/main/java/com/fangpeng/design/pattern/builder/demo1/OfoBuilder.java
deleted file mode 100644
index bc01c2c8..00000000
--- a/src/main/java/com/fangpeng/design/pattern/builder/demo1/OfoBuilder.java
+++ /dev/null
@@ -1,23 +0,0 @@
-package com.fangpeng.design.pattern.builder.demo1;
-
-/**
- * OfoBuilder
- * @author 方鹏
- * @date 2022年02月07日 5:25 下午
- */
-public class OfoBuilder extends Builder {
- @Override
- public void buildFrame() {
- bike.setFrame("铝合金车架");
- }
-
- @Override
- public void buildSeat() {
- bike.setSeat("橡胶车座");
- }
-
- @Override
- public Bike createBike() {
- return bike;
- }
-}
diff --git a/src/main/java/com/fangpeng/design/pattern/builder/demo2/Client.java b/src/main/java/com/fangpeng/design/pattern/builder/demo2/Client.java
deleted file mode 100644
index b54fac23..00000000
--- a/src/main/java/com/fangpeng/design/pattern/builder/demo2/Client.java
+++ /dev/null
@@ -1,21 +0,0 @@
-package com.fangpeng.design.pattern.builder.demo2;
-
-/**
- * @author 方鹏
- * @date 2022年02月07日 5:46 下午
- */
-public class Client {
-
- public static void main(String[] args) {
- //创建手机对象 通过构建者对象获取手机对象
- Phone phone = new Phone.Builder()
- .cpu("intel")
- .screen("三星屏幕")
- .memory("金士顿内存条")
- .mainboard("华硕主板")
- .build();
-
- System.out.println(phone);
- }
-
-}
diff --git a/src/main/java/com/fangpeng/design/pattern/builder/demo2/Phone.java b/src/main/java/com/fangpeng/design/pattern/builder/demo2/Phone.java
deleted file mode 100644
index 78f27b54..00000000
--- a/src/main/java/com/fangpeng/design/pattern/builder/demo2/Phone.java
+++ /dev/null
@@ -1,63 +0,0 @@
-package com.fangpeng.design.pattern.builder.demo2;
-
-/**
- * 手机类
- * @author 方鹏
- * @date 2022年02月07日 5:41 下午
- */
-public class Phone {
-
- private String cpu;
- private String screen;
- private String memory;
- private String mainboard;
-
- //私有构造方法
- private Phone(Builder builder) {
- this.cpu = builder.cpu;
- this.screen = builder.screen;
- this.memory = builder.memory;
- this.mainboard = builder.mainboard;
- }
-
- @Override
- public String toString() {
- return "Phone{" +
- "cpu='" + cpu + '\'' +
- ", screen='" + screen + '\'' +
- ", memory='" + memory + '\'' +
- ", mainboard='" + mainboard + '\'' +
- '}';
- }
-
- public static final class Builder {
- private String cpu;
- private String screen;
- private String memory;
- private String mainboard;
-
- public Builder cpu(String cpu) {
- this.cpu = cpu;
- return this;
- }
-
- public Builder screen(String screen) {
- this.screen = screen;
- return this;
- }
- public Builder memory(String memory) {
- this.memory = memory;
- return this;
- }
- public Builder mainboard(String mainboard) {
- this.mainboard = mainboard;
- return this;
- }
-
- //使用构建者创建Phone对象
- public Phone build() {
- return new Phone(this);
- }
- }
-
-}
diff --git a/src/main/java/com/fangpeng/design/pattern/combination/Client.java b/src/main/java/com/fangpeng/design/pattern/combination/Client.java
deleted file mode 100644
index 423933e6..00000000
--- a/src/main/java/com/fangpeng/design/pattern/combination/Client.java
+++ /dev/null
@@ -1,39 +0,0 @@
-package com.fangpeng.design.pattern.combination;
-
-/**
- * @author 方鹏
- * @date 2022年02月08日 2:13 下午
- */
-public class Client {
-
- public static void main(String[] args) {
- //创建菜单树
- MenuComponent menu1 = new Menu("菜单管理",2);
- menu1.add(new MenuItem("页面访问",3));
- menu1.add(new MenuItem("展开菜单",3));
- menu1.add(new MenuItem("编辑菜单",3));
- menu1.add(new MenuItem("删除菜单",3));
- menu1.add(new MenuItem("新增菜单",3));
-
- MenuComponent menu2 = new Menu("权限管理",2);
- menu2.add(new MenuItem("页面访问",3));
- menu2.add(new MenuItem("提交保存",3));
-
- MenuComponent menu3 = new Menu("角色管理",2);
- menu3.add(new MenuItem("页面访问",3));
- menu3.add(new MenuItem("新增角色",3));
- menu3.add(new MenuItem("修改角色",3));
-
- //创建一级菜单
- MenuComponent component = new Menu("系统管理",1);
- //将二级菜单添加到一级菜单中
- component.add(menu1);
- component.add(menu2);
- component.add(menu3);
-
-
- //打印菜单名称(如果有子菜单一块打印)
- component.print();
- }
-
-}
diff --git a/src/main/java/com/fangpeng/design/pattern/combination/Menu.java b/src/main/java/com/fangpeng/design/pattern/combination/Menu.java
deleted file mode 100644
index 31cfe758..00000000
--- a/src/main/java/com/fangpeng/design/pattern/combination/Menu.java
+++ /dev/null
@@ -1,50 +0,0 @@
-package com.fangpeng.design.pattern.combination;
-
-import java.util.ArrayList;
-import java.util.List;
-
-/**
- * 菜单类 : 属于树枝节点
- * @author 方鹏
- * @date 2022年02月08日 2:06 下午
- */
-public class Menu extends MenuComponent {
-
- //菜单可以有多个子菜单或者子菜单项
- private List menuComponentList = new ArrayList<>();
-
- //构造方法
- public Menu(String name, int level) {
- this.name = name;
- this.level = level;
- }
-
- @Override
- public void add(MenuComponent menuComponent) {
- menuComponentList.add(menuComponent);
- }
-
- @Override
- public void remove(MenuComponent menuComponent) {
- menuComponentList.remove(menuComponent);
- }
-
- @Override
- public MenuComponent getChild(int index) {
- return menuComponentList.get(index);
- }
-
- @Override
- public void print() {
- //打印菜单名称
- for(int i = 0; i < level; i++) {
- System.out.print("--|");
- }
- System.out.println(name);
-
- //打印子菜单或者子菜单项名称
- for (MenuComponent component : menuComponentList) {
- component.print();
- }
- }
-}
diff --git a/src/main/java/com/fangpeng/design/pattern/combination/MenuComponent.java b/src/main/java/com/fangpeng/design/pattern/combination/MenuComponent.java
deleted file mode 100644
index 0307ad80..00000000
--- a/src/main/java/com/fangpeng/design/pattern/combination/MenuComponent.java
+++ /dev/null
@@ -1,38 +0,0 @@
-package com.fangpeng.design.pattern.combination;
-
-/**
- * 菜单组件 : 属于抽象根节点
- * @author 方鹏
- * @date 2022年02月08日 2:02 下午
- */
-public abstract class MenuComponent {
-
- //菜单组件的名称
- protected String name;
- //菜单组件的层级
- protected int level;
-
- //添加子菜单
- public void add(MenuComponent menuComponent) {
- throw new UnsupportedOperationException();
- }
-
- //移除子菜单
- public void remove(MenuComponent menuComponent) {
- throw new UnsupportedOperationException();
- }
-
- //获取指定的子菜单
- public MenuComponent getChild(int index) {
- throw new UnsupportedOperationException();
- }
-
- //获取菜单或者菜单项的名称
- public String getName() {
- return name;
- }
-
- //打印菜单名称的方法(包含子菜单和字菜单项)
- public abstract void print();
-
-}
diff --git a/src/main/java/com/fangpeng/design/pattern/combination/MenuItem.java b/src/main/java/com/fangpeng/design/pattern/combination/MenuItem.java
deleted file mode 100644
index a2db6723..00000000
--- a/src/main/java/com/fangpeng/design/pattern/combination/MenuItem.java
+++ /dev/null
@@ -1,24 +0,0 @@
-package com.fangpeng.design.pattern.combination;
-
-/**
- * 菜单项类 : 属于叶子节点
- * @author 方鹏
- * @date 2022年02月08日 2:12 下午
- */
-public class MenuItem extends MenuComponent {
-
- public MenuItem(String name,int level) {
- this.name = name;
- this.level = level;
- }
-
- @Override
- public void print() {
- //打印菜单项的名称
- for(int i = 0; i < level; i++) {
- System.out.print("--|");
- }
- System.out.println(name);
- }
-
-}
diff --git a/src/main/java/com/fangpeng/design/pattern/command/Client.java b/src/main/java/com/fangpeng/design/pattern/command/Client.java
deleted file mode 100644
index 4d238c4b..00000000
--- a/src/main/java/com/fangpeng/design/pattern/command/Client.java
+++ /dev/null
@@ -1,37 +0,0 @@
-package com.fangpeng.design.pattern.command;
-
-/**
- * @author 方鹏
- * @date 2022年02月08日 4:10 下午
- */
-public class Client {
-
- public static void main(String[] args) {
- //创建第一个订单对象
- Order order1 = new Order();
- order1.setDiningTable(1);
- order1.setFood("西红柿鸡蛋面",1);
- order1.setFood("小杯可乐",2);
-
- //创建第二个订单对象
- Order order2 = new Order();
- order2.setDiningTable(2);
- order2.setFood("尖椒肉丝盖饭",1);
- order2.setFood("小杯雪碧",1);
-
- //创建厨师对象
- SeniorChef receiver = new SeniorChef();
- //创建命令对象
- OrderCommand cmd1 = new OrderCommand(receiver,order1);
- OrderCommand cmd2 = new OrderCommand(receiver,order2);
-
- //创建调用者(服务员对象)
- Waitor invoke = new Waitor();
- invoke.setCommand(cmd1);
- invoke.setCommand(cmd2);
-
- //让服务员发起命令
- invoke.orderUp();
- }
-
-}
diff --git a/src/main/java/com/fangpeng/design/pattern/command/Command.java b/src/main/java/com/fangpeng/design/pattern/command/Command.java
deleted file mode 100644
index 95a6f348..00000000
--- a/src/main/java/com/fangpeng/design/pattern/command/Command.java
+++ /dev/null
@@ -1,11 +0,0 @@
-package com.fangpeng.design.pattern.command;
-
-/**
- * 抽象命令类
- * @author 方鹏
- * @date 2022年02月08日 4:04 下午
- */
-public interface Command {
-
- void execute();
-}
diff --git a/src/main/java/com/fangpeng/design/pattern/command/Order.java b/src/main/java/com/fangpeng/design/pattern/command/Order.java
deleted file mode 100644
index 66e8c412..00000000
--- a/src/main/java/com/fangpeng/design/pattern/command/Order.java
+++ /dev/null
@@ -1,33 +0,0 @@
-package com.fangpeng.design.pattern.command;
-
-import java.util.HashMap;
-import java.util.Map;
-
-/**
- * 订单类
- * @author 方鹏
- * @date 2022年02月08日 4:02 下午
- */
-public class Order {
- //餐桌号码
- private int diningTable;
-
- //所下的餐品及份数
- private Map foodDir = new HashMap<>();
-
- public int getDiningTable() {
- return diningTable;
- }
-
- public void setDiningTable(int diningTable) {
- this.diningTable = diningTable;
- }
-
- public Map getFoodDir() {
- return foodDir;
- }
-
- public void setFood(String name, int num) {
- foodDir.put(name,num);
- }
-}
diff --git a/src/main/java/com/fangpeng/design/pattern/command/OrderCommand.java b/src/main/java/com/fangpeng/design/pattern/command/OrderCommand.java
deleted file mode 100644
index add13774..00000000
--- a/src/main/java/com/fangpeng/design/pattern/command/OrderCommand.java
+++ /dev/null
@@ -1,34 +0,0 @@
-package com.fangpeng.design.pattern.command;
-
-import java.util.Map;
-import java.util.Set;
-
-/**
- * 具体的命令类
- * @author 方鹏
- * @date 2022年02月08日 4:05 下午
- */
-public class OrderCommand implements Command {
-
- //持有接收者对象
- private SeniorChef receiver;
- private Order order;
-
- public OrderCommand(SeniorChef receiver, Order order) {
- this.receiver = receiver;
- this.order = order;
- }
-
- @Override
- public void execute() {
- System.out.println(order.getDiningTable() + "桌的订单:");
- Map foodDir = order.getFoodDir();
- //遍历map集合
- Set keys = foodDir.keySet();
- for (String foodName : keys) {
- receiver.makeFood(foodName, foodDir.get(foodName));
- }
-
- System.out.println(order.getDiningTable() + "桌的饭准备完毕!!!");
- }
-}
diff --git a/src/main/java/com/fangpeng/design/pattern/command/SeniorChef.java b/src/main/java/com/fangpeng/design/pattern/command/SeniorChef.java
deleted file mode 100644
index 066d0e43..00000000
--- a/src/main/java/com/fangpeng/design/pattern/command/SeniorChef.java
+++ /dev/null
@@ -1,14 +0,0 @@
-package com.fangpeng.design.pattern.command;
-
-/**
- * 厨师类
- * @author 方鹏
- * @date 2022年02月08日 4:04 下午
- */
-public class SeniorChef {
-
- public void makeFood(String name,int num) {
- System.out.println("厨师制作:" + num + "份" + name);
- }
-
-}
diff --git a/src/main/java/com/fangpeng/design/pattern/command/Waitor.java b/src/main/java/com/fangpeng/design/pattern/command/Waitor.java
deleted file mode 100644
index bb6065ee..00000000
--- a/src/main/java/com/fangpeng/design/pattern/command/Waitor.java
+++ /dev/null
@@ -1,32 +0,0 @@
-package com.fangpeng.design.pattern.command;
-
-import java.util.ArrayList;
-import java.util.List;
-
-/**
- * 服务员类(属于请求者角色)
- * @author 方鹏
- * @date 2022年02月08日 4:08 下午
- */
-public class Waitor {
-
- //持有多个命令对象
- private List commands = new ArrayList();
-
- public void setCommand(Command cmd) {
- //将cmd对象存储到list集合中
- commands.add(cmd);
- }
-
- //发起命令功能 喊 订单来了
- public void orderUp() {
- System.out.println("美女服务员:大厨,新订单来了。。。。");
- //遍历list集合
- for (Command command : commands) {
- if(command != null) {
- command.execute();
- }
- }
- }
-
-}
diff --git a/src/main/java/com/fangpeng/design/pattern/decorator/Bacon.java b/src/main/java/com/fangpeng/design/pattern/decorator/Bacon.java
deleted file mode 100644
index efd6cf2b..00000000
--- a/src/main/java/com/fangpeng/design/pattern/decorator/Bacon.java
+++ /dev/null
@@ -1,24 +0,0 @@
-package com.fangpeng.design.pattern.decorator;
-
-/**
- * 培根类(具体的装饰者角色)
- * @author 方鹏
- * @date 2022年02月07日 9:33 下午
- */
-public class Bacon extends Garnish {
-
- public Bacon(FastFood fastFood) {
- super(fastFood,2,"培根");
- }
-
- @Override
- public float cost() {
- //计算价格
- return getPrice() + getFastFood().cost();
- }
-
- @Override
- public String getDesc() {
- return super.getDesc() + getFastFood().getDesc();
- }
-}
diff --git a/src/main/java/com/fangpeng/design/pattern/decorator/Client.java b/src/main/java/com/fangpeng/design/pattern/decorator/Client.java
deleted file mode 100644
index f0f8272c..00000000
--- a/src/main/java/com/fangpeng/design/pattern/decorator/Client.java
+++ /dev/null
@@ -1,31 +0,0 @@
-package com.fangpeng.design.pattern.decorator;
-
-/**
- * @author 方鹏
- * @date 2022年02月07日 9:33 下午
- */
-public class Client {
-
- public static void main(String[] args) {
- //点一份炒饭
- FastFood food = new FriedRice();
-
- System.out.println(food.getDesc() + " " + food.cost() + "元");
-
- System.out.println("===============");
-
- //在上面的炒饭中加一个鸡蛋
- food = new Egg(food);
- System.out.println(food.getDesc() + " " + food.cost() + "元");
-
- System.out.println("================");
- //再加一个鸡蛋
- food = new Egg(food);
- System.out.println(food.getDesc() + " " + food.cost() + "元");
-
- System.out.println("================");
- food = new Bacon(food);
- System.out.println(food.getDesc() + " " + food.cost() + "元");
- }
-
-}
diff --git a/src/main/java/com/fangpeng/design/pattern/decorator/Egg.java b/src/main/java/com/fangpeng/design/pattern/decorator/Egg.java
deleted file mode 100644
index ca84e5bc..00000000
--- a/src/main/java/com/fangpeng/design/pattern/decorator/Egg.java
+++ /dev/null
@@ -1,24 +0,0 @@
-package com.fangpeng.design.pattern.decorator;
-
-/**
- * 鸡蛋类(具体的装饰者角色)
- * @author 方鹏
- * @date 2022年02月07日 9:30 下午
- */
-public class Egg extends Garnish {
-
- public Egg(FastFood fastFood) {
- super(fastFood, 1, "鸡蛋");
- }
-
- @Override
- public float cost() {
- //计算价格
- return getPrice() + getFastFood().cost();
- }
-
- @Override
- public String getDesc() {
- return super.getDesc() + getFastFood().getDesc();
- }
-}
diff --git a/src/main/java/com/fangpeng/design/pattern/decorator/FastFood.java b/src/main/java/com/fangpeng/design/pattern/decorator/FastFood.java
deleted file mode 100644
index dc884268..00000000
--- a/src/main/java/com/fangpeng/design/pattern/decorator/FastFood.java
+++ /dev/null
@@ -1,39 +0,0 @@
-package com.fangpeng.design.pattern.decorator;
-
-/**
- * 快餐类(抽象构件角色)
- * @author 方鹏
- * @date 2022年02月07日 9:24 下午
- */
-public abstract class FastFood {
-
- private float price;//价格
- private String desc; //描述
-
- public float getPrice() {
- return price;
- }
-
- public void setPrice(float price) {
- this.price = price;
- }
-
- public String getDesc() {
- return desc;
- }
-
- public void setDesc(String desc) {
- this.desc = desc;
- }
-
- public FastFood(float price, String desc) {
- this.price = price;
- this.desc = desc;
- }
-
- public FastFood() {
- }
-
- public abstract float cost();
-}
-
diff --git a/src/main/java/com/fangpeng/design/pattern/decorator/FriedNoodles.java b/src/main/java/com/fangpeng/design/pattern/decorator/FriedNoodles.java
deleted file mode 100644
index 7c32f0b7..00000000
--- a/src/main/java/com/fangpeng/design/pattern/decorator/FriedNoodles.java
+++ /dev/null
@@ -1,17 +0,0 @@
-package com.fangpeng.design.pattern.decorator;
-
-/**
- * @author 方鹏
- * @date 2022年02月07日 9:27 下午
- */
-public class FriedNoodles extends FastFood {
-
- public FriedNoodles() {
- super(12,"炒面");
- }
-
- @Override
- public float cost() {
- return getPrice();
- }
-}
diff --git a/src/main/java/com/fangpeng/design/pattern/decorator/FriedRice.java b/src/main/java/com/fangpeng/design/pattern/decorator/FriedRice.java
deleted file mode 100644
index 6eda3d40..00000000
--- a/src/main/java/com/fangpeng/design/pattern/decorator/FriedRice.java
+++ /dev/null
@@ -1,18 +0,0 @@
-package com.fangpeng.design.pattern.decorator;
-
-/**
- * 炒饭(具体构件角色)
- * @author 方鹏
- * @date 2022年02月07日 9:26 下午
- */
-public class FriedRice extends FastFood {
-
- public FriedRice() {
- super(10,"炒饭");
- }
-
- @Override
- public float cost() {
- return getPrice();
- }
-}
diff --git a/src/main/java/com/fangpeng/design/pattern/decorator/Garnish.java b/src/main/java/com/fangpeng/design/pattern/decorator/Garnish.java
deleted file mode 100644
index 1529dbb0..00000000
--- a/src/main/java/com/fangpeng/design/pattern/decorator/Garnish.java
+++ /dev/null
@@ -1,25 +0,0 @@
-package com.fangpeng.design.pattern.decorator;
-
-/** 装饰者类(抽象装饰者角色)
- * @author 方鹏
- * @date 2022年02月07日 9:29 下午
- */
-public abstract class Garnish extends FastFood {
-
- //声明快餐类的变量
- private FastFood fastFood;
-
- public FastFood getFastFood() {
- return fastFood;
- }
-
- public void setFastFood(FastFood fastFood) {
- this.fastFood = fastFood;
- }
-
- public Garnish(FastFood fastFood, float price, String desc) {
- super(price, desc);
- this.fastFood = fastFood;
- }
-
-}
diff --git a/src/main/java/com/fangpeng/design/pattern/facade/AirCondition.java b/src/main/java/com/fangpeng/design/pattern/facade/AirCondition.java
deleted file mode 100644
index 62109ebb..00000000
--- a/src/main/java/com/fangpeng/design/pattern/facade/AirCondition.java
+++ /dev/null
@@ -1,18 +0,0 @@
-package com.fangpeng.design.pattern.facade;
-
-/**
- * 空调类
- * @author 方鹏
- * @date 2022年02月08日 1:42 下午
- */
-public class AirCondition {
-
- public void on() {
- System.out.println("打开空调。。。。");
- }
-
- public void off() {
- System.out.println("关闭空调。。。。");
- }
-
-}
diff --git a/src/main/java/com/fangpeng/design/pattern/facade/Client.java b/src/main/java/com/fangpeng/design/pattern/facade/Client.java
deleted file mode 100644
index 779a4e40..00000000
--- a/src/main/java/com/fangpeng/design/pattern/facade/Client.java
+++ /dev/null
@@ -1,20 +0,0 @@
-package com.fangpeng.design.pattern.facade;
-
-/**
- * @author 方鹏
- * @date 2022年02月08日 1:46 下午
- */
-public class Client {
-
- public static void main(String[] args) {
- //创建智能音箱对象
- SmartAppliancesFacade facade = new SmartAppliancesFacade();
- //控制家电
- facade.say("打开家电");
-
- System.out.println("==================");
-
- facade.say("关闭家电");
- }
-
-}
diff --git a/src/main/java/com/fangpeng/design/pattern/facade/Light.java b/src/main/java/com/fangpeng/design/pattern/facade/Light.java
deleted file mode 100644
index 359d818a..00000000
--- a/src/main/java/com/fangpeng/design/pattern/facade/Light.java
+++ /dev/null
@@ -1,20 +0,0 @@
-package com.fangpeng.design.pattern.facade;
-
-/**
- * 电灯类
- * @author 方鹏
- * @date 2022年02月08日 1:41 下午
- */
-public class Light {
-
- //开灯
- public void on() {
- System.out.println("打开电灯。。。。");
- }
-
- //关灯
- public void off() {
- System.out.println("关闭电灯。。。。");
- }
-
-}
diff --git a/src/main/java/com/fangpeng/design/pattern/facade/SmartAppliancesFacade.java b/src/main/java/com/fangpeng/design/pattern/facade/SmartAppliancesFacade.java
deleted file mode 100644
index 312c5743..00000000
--- a/src/main/java/com/fangpeng/design/pattern/facade/SmartAppliancesFacade.java
+++ /dev/null
@@ -1,47 +0,0 @@
-package com.fangpeng.design.pattern.facade;
-
-/**
- * 外观类,用户主要和该类对象进行交互
- * @author 方鹏
- * @date 2022年02月08日 1:42 下午
- */
-public class SmartAppliancesFacade {
-
- //聚合电灯对象,电视机对象,空调对象
- private Light light;
- private TV tv;
- private AirCondition airCondition;
-
- public SmartAppliancesFacade() {
- light = new Light();
- tv = new TV();
- airCondition = new AirCondition();
- }
-
- //通过语言控制
- public void say(String message) {
- if(message.contains("打开")) {
- on();
- } else if(message.contains("关闭")) {
- off();
- } else {
- System.out.println("我还听不懂你说的!!!");
- }
- }
-
-
- //一键打开功能
- private void on() {
- light.on();
- tv.on();
- airCondition.on();
- }
-
- //一键关闭功能
- private void off() {
- light.off();
- tv.off();
- airCondition.off();
- }
-
-}
diff --git a/src/main/java/com/fangpeng/design/pattern/facade/TV.java b/src/main/java/com/fangpeng/design/pattern/facade/TV.java
deleted file mode 100644
index 5a821343..00000000
--- a/src/main/java/com/fangpeng/design/pattern/facade/TV.java
+++ /dev/null
@@ -1,18 +0,0 @@
-package com.fangpeng.design.pattern.facade;
-
-/**
- * 电视机类
- * @author 方鹏
- * @date 2022年02月08日 1:41 下午
- */
-public class TV {
-
- public void on() {
- System.out.println("打开电视机。。。。");
- }
-
- public void off() {
- System.out.println("关闭电视机。。。。");
- }
-
-}
diff --git a/src/main/java/com/fangpeng/design/pattern/factory/abstract_factory/AmericanCoffee.java b/src/main/java/com/fangpeng/design/pattern/factory/abstract_factory/AmericanCoffee.java
deleted file mode 100644
index c75f4d7d..00000000
--- a/src/main/java/com/fangpeng/design/pattern/factory/abstract_factory/AmericanCoffee.java
+++ /dev/null
@@ -1,12 +0,0 @@
-package com.fangpeng.design.pattern.factory.abstract_factory;
-
-/*
- 美式咖啡
- */
-public class AmericanCoffee extends Coffee {
-
- public String getName() {
- return "美式咖啡";
- }
-}
-
diff --git a/src/main/java/com/fangpeng/design/pattern/factory/abstract_factory/AmericanDessertFactory.java b/src/main/java/com/fangpeng/design/pattern/factory/abstract_factory/AmericanDessertFactory.java
deleted file mode 100644
index 87061eda..00000000
--- a/src/main/java/com/fangpeng/design/pattern/factory/abstract_factory/AmericanDessertFactory.java
+++ /dev/null
@@ -1,16 +0,0 @@
-package com.fangpeng.design.pattern.factory.abstract_factory;
-
-/*
- 美式风味的甜品工厂:生产美式咖啡和抹茶慕斯
- */
-public class AmericanDessertFactory implements DessertFactory {
- @Override
- public Coffee createCoffee() {
- return new AmericanCoffee();
- }
-
- @Override
- public Dessert createDessert() {
- return new MatchaMousse();
- }
-}
diff --git a/src/main/java/com/fangpeng/design/pattern/factory/abstract_factory/Client.java b/src/main/java/com/fangpeng/design/pattern/factory/abstract_factory/Client.java
deleted file mode 100644
index c5b61484..00000000
--- a/src/main/java/com/fangpeng/design/pattern/factory/abstract_factory/Client.java
+++ /dev/null
@@ -1,17 +0,0 @@
-package com.fangpeng.design.pattern.factory.abstract_factory;
-
-public class Client {
-
- public static void main(String[] args) {
- //创建的是意大利风味甜品工厂对象
- //ItalyDessertFactory factory = new ItalyDessertFactory();
- AmericanDessertFactory factory = new AmericanDessertFactory();
- //获取拿铁咖啡和提拉米苏甜品
- Coffee coffee = factory.createCoffee();
- Dessert dessert = factory.createDessert();
-
- System.out.println(coffee.getName());
- dessert.show();
- }
-
-}
diff --git a/src/main/java/com/fangpeng/design/pattern/factory/abstract_factory/Coffee.java b/src/main/java/com/fangpeng/design/pattern/factory/abstract_factory/Coffee.java
deleted file mode 100644
index ef3a6ce8..00000000
--- a/src/main/java/com/fangpeng/design/pattern/factory/abstract_factory/Coffee.java
+++ /dev/null
@@ -1,20 +0,0 @@
-package com.fangpeng.design.pattern.factory.abstract_factory;
-
-/*
- 咖啡类
- */
-public abstract class Coffee {
-
- public abstract String getName();
-
- //加糖
- public void addSugar() {
- System.out.println("加糖");
- }
-
- //加奶
- public void addMilk() {
- System.out.println("加奶");
- }
-
-}
diff --git a/src/main/java/com/fangpeng/design/pattern/factory/abstract_factory/Dessert.java b/src/main/java/com/fangpeng/design/pattern/factory/abstract_factory/Dessert.java
deleted file mode 100644
index cabc8d6d..00000000
--- a/src/main/java/com/fangpeng/design/pattern/factory/abstract_factory/Dessert.java
+++ /dev/null
@@ -1,10 +0,0 @@
-package com.fangpeng.design.pattern.factory.abstract_factory;
-
-/*
- 甜品抽象类
- */
-public abstract class Dessert {
-
- public abstract void show();
-
-}
diff --git a/src/main/java/com/fangpeng/design/pattern/factory/abstract_factory/DessertFactory.java b/src/main/java/com/fangpeng/design/pattern/factory/abstract_factory/DessertFactory.java
deleted file mode 100644
index 29ee6d57..00000000
--- a/src/main/java/com/fangpeng/design/pattern/factory/abstract_factory/DessertFactory.java
+++ /dev/null
@@ -1,11 +0,0 @@
-package com.fangpeng.design.pattern.factory.abstract_factory;
-
-public interface DessertFactory {
-
- //生产咖啡的功能
- Coffee createCoffee();
-
- //生产甜品的功能
- Dessert createDessert();
-
-}
diff --git a/src/main/java/com/fangpeng/design/pattern/factory/abstract_factory/ItalyDessertFactory.java b/src/main/java/com/fangpeng/design/pattern/factory/abstract_factory/ItalyDessertFactory.java
deleted file mode 100644
index 54134188..00000000
--- a/src/main/java/com/fangpeng/design/pattern/factory/abstract_factory/ItalyDessertFactory.java
+++ /dev/null
@@ -1,16 +0,0 @@
-package com.fangpeng.design.pattern.factory.abstract_factory;
-
-/*
- 意大利风味甜品工厂:生产拿铁咖啡和提拉米苏甜品
- */
-public class ItalyDessertFactory implements DessertFactory {
- @Override
- public Coffee createCoffee() {
- return new LatteCoffee();
- }
-
- @Override
- public Dessert createDessert() {
- return new Trimisu();
- }
-}
diff --git a/src/main/java/com/fangpeng/design/pattern/factory/abstract_factory/LatteCoffee.java b/src/main/java/com/fangpeng/design/pattern/factory/abstract_factory/LatteCoffee.java
deleted file mode 100644
index ef73e645..00000000
--- a/src/main/java/com/fangpeng/design/pattern/factory/abstract_factory/LatteCoffee.java
+++ /dev/null
@@ -1,11 +0,0 @@
-package com.fangpeng.design.pattern.factory.abstract_factory;
-
-/*
- 拿铁咖啡
- */
-public class LatteCoffee extends Coffee {
-
- public String getName() {
- return "拿铁咖啡";
- }
-}
\ No newline at end of file
diff --git a/src/main/java/com/fangpeng/design/pattern/factory/abstract_factory/MatchaMousse.java b/src/main/java/com/fangpeng/design/pattern/factory/abstract_factory/MatchaMousse.java
deleted file mode 100644
index 46946480..00000000
--- a/src/main/java/com/fangpeng/design/pattern/factory/abstract_factory/MatchaMousse.java
+++ /dev/null
@@ -1,11 +0,0 @@
-package com.fangpeng.design.pattern.factory.abstract_factory;
-
-/*
- 抹茶慕斯类
- */
-public class MatchaMousse extends Dessert {
- @Override
- public void show() {
- System.out.println("抹茶慕斯");
- }
-}
diff --git a/src/main/java/com/fangpeng/design/pattern/factory/abstract_factory/Trimisu.java b/src/main/java/com/fangpeng/design/pattern/factory/abstract_factory/Trimisu.java
deleted file mode 100644
index e7dc7d28..00000000
--- a/src/main/java/com/fangpeng/design/pattern/factory/abstract_factory/Trimisu.java
+++ /dev/null
@@ -1,11 +0,0 @@
-package com.fangpeng.design.pattern.factory.abstract_factory;
-
-/*
- 提拉米苏类
- */
-public class Trimisu extends Dessert {
- @Override
- public void show() {
- System.out.println("提拉米苏");
- }
-}
diff --git a/src/main/java/com/fangpeng/design/pattern/factory/before/AmericanCoffee.java b/src/main/java/com/fangpeng/design/pattern/factory/before/AmericanCoffee.java
deleted file mode 100644
index a6f62589..00000000
--- a/src/main/java/com/fangpeng/design/pattern/factory/before/AmericanCoffee.java
+++ /dev/null
@@ -1,12 +0,0 @@
-package com.fangpeng.design.pattern.factory.before;
-
-/*
- 美式咖啡
- */
-public class AmericanCoffee extends Coffee {
-
- public String getName() {
- return "美式咖啡";
- }
-}
-
diff --git a/src/main/java/com/fangpeng/design/pattern/factory/before/Client.java b/src/main/java/com/fangpeng/design/pattern/factory/before/Client.java
deleted file mode 100644
index acc5720f..00000000
--- a/src/main/java/com/fangpeng/design/pattern/factory/before/Client.java
+++ /dev/null
@@ -1,14 +0,0 @@
-package com.fangpeng.design.pattern.factory.before;
-
-public class Client {
-
- public static void main(String[] args) {
- //1,创建咖啡店类
- CoffeeStore store = new CoffeeStore();
- //2,点咖啡
- Coffee coffee = store.orderCoffee("american");
-
- System.out.println(coffee.getName());
- }
-
-}
diff --git a/src/main/java/com/fangpeng/design/pattern/factory/before/Coffee.java b/src/main/java/com/fangpeng/design/pattern/factory/before/Coffee.java
deleted file mode 100644
index b48d5c54..00000000
--- a/src/main/java/com/fangpeng/design/pattern/factory/before/Coffee.java
+++ /dev/null
@@ -1,20 +0,0 @@
-package com.fangpeng.design.pattern.factory.before;
-
-/*
- 咖啡类
- */
-public abstract class Coffee {
-
- public abstract String getName();
-
- //加糖
- public void addSugar() {
- System.out.println("加糖");
- }
-
- //加奶
- public void addMilk() {
- System.out.println("加奶");
- }
-
-}
diff --git a/src/main/java/com/fangpeng/design/pattern/factory/before/CoffeeStore.java b/src/main/java/com/fangpeng/design/pattern/factory/before/CoffeeStore.java
deleted file mode 100644
index 96038e69..00000000
--- a/src/main/java/com/fangpeng/design/pattern/factory/before/CoffeeStore.java
+++ /dev/null
@@ -1,22 +0,0 @@
-package com.fangpeng.design.pattern.factory.before;
-
-public class CoffeeStore {
-
- public Coffee orderCoffee(String type) {
- //声明Coffee类型的变量,根据不同类型创建不同的coffee子类对象
- Coffee coffee = null;
- if("american".equals(type)) {
- coffee = new AmericanCoffee();
- } else if("latte".equals(type)) {
- coffee = new LatteCoffee();
- } else {
- throw new RuntimeException("对不起,您所点的咖啡没有");
- }
- //加配料
- coffee.addMilk();
- coffee.addSugar();
-
- return coffee;
- }
-
-}
diff --git a/src/main/java/com/fangpeng/design/pattern/factory/before/LatteCoffee.java b/src/main/java/com/fangpeng/design/pattern/factory/before/LatteCoffee.java
deleted file mode 100644
index 19a15311..00000000
--- a/src/main/java/com/fangpeng/design/pattern/factory/before/LatteCoffee.java
+++ /dev/null
@@ -1,11 +0,0 @@
-package com.fangpeng.design.pattern.factory.before;
-
-/*
- 拿铁咖啡
- */
-public class LatteCoffee extends Coffee {
-
- public String getName() {
- return "拿铁咖啡";
- }
-}
\ No newline at end of file
diff --git a/src/main/java/com/fangpeng/design/pattern/factory/config_factory/AmericanCoffee.java b/src/main/java/com/fangpeng/design/pattern/factory/config_factory/AmericanCoffee.java
deleted file mode 100644
index 6895f839..00000000
--- a/src/main/java/com/fangpeng/design/pattern/factory/config_factory/AmericanCoffee.java
+++ /dev/null
@@ -1,12 +0,0 @@
-package com.fangpeng.design.pattern.factory.config_factory;
-
-/*
- 美式咖啡
- */
-public class AmericanCoffee extends Coffee {
-
- public String getName() {
- return "美式咖啡";
- }
-}
-
diff --git a/src/main/java/com/fangpeng/design/pattern/factory/config_factory/Client.java b/src/main/java/com/fangpeng/design/pattern/factory/config_factory/Client.java
deleted file mode 100644
index 5b6fa0d9..00000000
--- a/src/main/java/com/fangpeng/design/pattern/factory/config_factory/Client.java
+++ /dev/null
@@ -1,14 +0,0 @@
-package com.fangpeng.design.pattern.factory.config_factory;
-
-public class Client {
-
- public static void main(String[] args) {
- Coffee coffee = CoffeeFactory.createCoffee("american");
- System.out.println(coffee.getName());
-
- System.out.println("=============");
- Coffee latte = CoffeeFactory.createCoffee("latte");
- System.out.println(latte.getName());
- }
-
-}
diff --git a/src/main/java/com/fangpeng/design/pattern/factory/config_factory/Coffee.java b/src/main/java/com/fangpeng/design/pattern/factory/config_factory/Coffee.java
deleted file mode 100644
index b4ca156d..00000000
--- a/src/main/java/com/fangpeng/design/pattern/factory/config_factory/Coffee.java
+++ /dev/null
@@ -1,20 +0,0 @@
-package com.fangpeng.design.pattern.factory.config_factory;
-
-/*
- 咖啡类
- */
-public abstract class Coffee {
-
- public abstract String getName();
-
- //加糖
- public void addSugar() {
- System.out.println("加糖");
- }
-
- //加奶
- public void addMilk() {
- System.out.println("加奶");
- }
-
-}
diff --git a/src/main/java/com/fangpeng/design/pattern/factory/config_factory/CoffeeFactory.java b/src/main/java/com/fangpeng/design/pattern/factory/config_factory/CoffeeFactory.java
deleted file mode 100644
index 963bea42..00000000
--- a/src/main/java/com/fangpeng/design/pattern/factory/config_factory/CoffeeFactory.java
+++ /dev/null
@@ -1,45 +0,0 @@
-package com.fangpeng.design.pattern.factory.config_factory;
-
-import com.sun.xml.internal.bind.v2.ClassFactory;
-
-import java.io.InputStream;
-import java.util.HashMap;
-import java.util.Map;
-import java.util.Properties;
-import java.util.Set;
-
-public class CoffeeFactory {
-
- //加载配置文件,获取配置文件中配置的全类名,并创建该类的对象进行存储
- //1,定义容器对象存储咖啡对象
- private static Map map = new HashMap<>();
-
- //2,加载配置文件, 只需要加载一次
- static {
- //2.1 创建Properties对象
- Properties p = new Properties();
- //2.2 调用p对象中的load方法进行配置文件的加载
- InputStream is = ClassFactory.class.getClassLoader().getResourceAsStream("bean.properties");
- try {
- p.load(is);
- //从p集合中获取全类名并创建对象
- Set