From 9b657ef5c214c4eb7b3cc9713a68c019a70632e5 Mon Sep 17 00:00:00 2001 From: Estom Date: Sat, 10 Apr 2021 23:21:23 +0800 Subject: [PATCH] =?UTF-8?q?=E8=AE=BE=E8=AE=A1=E6=A8=A1=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 工作日志/2021年4月10日-今日计划.md | 9 +- 设计模式/0 设计模式概述.md | 268 +++++++++++++------------ 设计模式/image/2021-04-10-16-48-05.png | Bin 0 -> 16759 bytes 设计模式/refactor/重构规划书.md | 18 ++ 4 files changed, 161 insertions(+), 134 deletions(-) create mode 100644 设计模式/image/2021-04-10-16-48-05.png create mode 100644 设计模式/refactor/重构规划书.md diff --git a/工作日志/2021年4月10日-今日计划.md b/工作日志/2021年4月10日-今日计划.md index 7826660d..92575733 100644 --- a/工作日志/2021年4月10日-今日计划.md +++ b/工作日志/2021年4月10日-今日计划.md @@ -1,12 +1,15 @@ ## 计划 -- [ ] 设计模式复习(网站) +- [ ] 设计模式复习 +- [ ] vscode C++集成开发环境 +- [ ] cmake/vs 项目重构 +- [ ] 制定四月份论文阅读计划 + - TensorFlow之前的计划 - pytorch之前的计划 -- [ ] 制定四月份论文阅读计划 +## 收获 -## \ No newline at end of file diff --git a/设计模式/0 设计模式概述.md b/设计模式/0 设计模式概述.md index fe1002a2..34376226 100644 --- a/设计模式/0 设计模式概述.md +++ b/设计模式/0 设计模式概述.md @@ -1,134 +1,140 @@ -* [一、概述](#一概述) -* [二、创建型](#二创建型) - * [1. 单例(Singleton)](#1-单例singleton) - * [Intent](#intent) - * [Class Diagram](#class-diagram) - * [Implementation](#implementation) - * [Examples](#examples) - * [JDK](#jdk) - * [2. 简单工厂(Simple Factory)](#2-简单工厂simple-factory) - * [Intent](#intent) - * [Class Diagram](#class-diagram) - * [Implementation](#implementation) - * [3. 工厂方法(Factory Method)](#3-工厂方法factory-method) - * [Intent](#intent) - * [Class Diagram](#class-diagram) - * [Implementation](#implementation) - * [JDK](#jdk) - * [4. 抽象工厂(Abstract Factory)](#4-抽象工厂abstract-factory) - * [Intent](#intent) - * [Class Diagram](#class-diagram) - * [Implementation](#implementation) - * [JDK](#jdk) - * [5. 生成器(Builder)](#5-生成器builder) - * [Intent](#intent) - * [Class Diagram](#class-diagram) - * [Implementation](#implementation) - * [JDK](#jdk) - * [6. 原型模式(Prototype)](#6-原型模式prototype) - * [Intent](#intent) - * [Class Diagram](#class-diagram) - * [Implementation](#implementation) - * [JDK](#jdk) -* [三、行为型](#三行为型) - * [1. 责任链(Chain Of Responsibility)](#1-责任链chain-of-responsibility) - * [Intent](#intent) - * [Class Diagram](#class-diagram) - * [Implementation](#implementation) - * [JDK](#jdk) - * [2. 命令(Command)](#2-命令command) - * [Intent](#intent) - * [Class Diagram](#class-diagram) - * [Implementation](#implementation) - * [JDK](#jdk) - * [3. 解释器(Interpreter)](#3-解释器interpreter) - * [Intent](#intent) - * [Class Diagram](#class-diagram) - * [Implementation](#implementation) - * [JDK](#jdk) - * [4. 迭代器(Iterator)](#4-迭代器iterator) - * [Intent](#intent) - * [Class Diagram](#class-diagram) - * [Implementation](#implementation) - * [JDK](#jdk) - * [5. 中介者(Mediator)](#5-中介者mediator) - * [Intent](#intent) - * [Class Diagram](#class-diagram) - * [Implementation](#implementation) - * [JDK](#jdk) - * [6. 备忘录(Memento)](#6-备忘录memento) - * [Intent](#intent) - * [Class Diagram](#class-diagram) - * [Implementation](#implementation) - * [JDK](#jdk) - * [7. 观察者(Observer)](#7-观察者observer) - * [Intent](#intent) - * [Class Diagram](#class-diagram) - * [Implementation](#implementation) - * [JDK](#jdk) - * [8. 状态(State)](#8-状态state) - * [Intent](#intent) - * [Class Diagram](#class-diagram) - * [Implementation](#implementation) - * [9. 策略(Strategy)](#9-策略strategy) - * [Intent](#intent) - * [Class Diagram](#class-diagram) - * [与状态模式的比较](#与状态模式的比较) - * [Implementation](#implementation) - * [JDK](#jdk) - * [10. 模板方法(Template Method)](#10-模板方法template-method) - * [Intent](#intent) - * [Class Diagram](#class-diagram) - * [Implementation](#implementation) - * [JDK](#jdk) - * [11. 访问者(Visitor)](#11-访问者visitor) - * [Intent](#intent) - * [Class Diagram](#class-diagram) - * [Implementation](#implementation) - * [JDK](#jdk) - * [12. 空对象(Null)](#12-空对象null) - * [Intent](#intent) - * [Class Diagram](#class-diagram) - * [Implementation](#implementation) -* [四、结构型](#四结构型) - * [1. 适配器(Adapter)](#1-适配器adapter) - * [Intent](#intent) - * [Class Diagram](#class-diagram) - * [Implementation](#implementation) - * [JDK](#jdk) - * [2. 桥接(Bridge)](#2-桥接bridge) - * [Intent](#intent) - * [Class Diagram](#class-diagram) - * [Implementation](#implementation) - * [JDK](#jdk) - * [3. 组合(Composite)](#3-组合composite) - * [Intent](#intent) - * [Class Diagram](#class-diagram) - * [Implementation](#implementation) - * [JDK](#jdk) - * [4. 装饰(Decorator)](#4-装饰decorator) - * [Intent](#intent) - * [Class Diagram](#class-diagram) - * [Implementation](#implementation) - * [设计原则](#设计原则) - * [JDK](#jdk) - * [5. 外观(Facade)](#5-外观facade) - * [Intent](#intent) - * [Class Diagram](#class-diagram) - * [Implementation](#implementation) - * [设计原则](#设计原则) - * [6. 享元(Flyweight)](#6-享元flyweight) - * [Intent](#intent) - * [Class Diagram](#class-diagram) - * [Implementation](#implementation) - * [JDK](#jdk) - * [7. 代理(Proxy)](#7-代理proxy) - * [Intent](#intent) - * [Class Diagram](#class-diagram) - * [Implementation](#implementation) - * [JDK](#jdk) -* [参考资料](#参考资料) +- [一、概述](#一概述) +- [二、创建型](#二创建型) + - [1. 单例(Singleton)](#1-单例singleton) + - [Intent](#intent) + - [Class Diagram](#class-diagram) + - [Implementation](#implementation) + - [Ⅰ 懒汉式-线程不安全](#ⅰ-懒汉式-线程不安全) + - [Ⅱ 饿汉式-线程安全](#ⅱ-饿汉式-线程安全) + - [Ⅲ 懒汉式-线程安全](#ⅲ-懒汉式-线程安全) + - [Ⅳ 双重校验锁-线程安全](#ⅳ-双重校验锁-线程安全) + - [Ⅴ 静态内部类实现](#ⅴ-静态内部类实现) + - [Ⅵ 枚举实现](#ⅵ-枚举实现) + - [Examples](#examples) + - [JDK](#jdk) + - [2. 简单工厂(Simple Factory)](#2-简单工厂simple-factory) + - [Intent](#intent-1) + - [Class Diagram](#class-diagram-1) + - [Implementation](#implementation-1) + - [3. 工厂方法(Factory Method)](#3-工厂方法factory-method) + - [Intent](#intent-2) + - [Class Diagram](#class-diagram-2) + - [Implementation](#implementation-2) + - [JDK](#jdk-1) + - [4. 抽象工厂(Abstract Factory)](#4-抽象工厂abstract-factory) + - [Intent](#intent-3) + - [Class Diagram](#class-diagram-3) + - [Implementation](#implementation-3) + - [JDK](#jdk-2) + - [5. 生成器(Builder)](#5-生成器builder) + - [Intent](#intent-4) + - [Class Diagram](#class-diagram-4) + - [Implementation](#implementation-4) + - [JDK](#jdk-3) + - [6. 原型模式(Prototype)](#6-原型模式prototype) + - [Intent](#intent-5) + - [Class Diagram](#class-diagram-5) + - [Implementation](#implementation-5) + - [JDK](#jdk-4) +- [三、行为型](#三行为型) + - [1. 责任链(Chain Of Responsibility)](#1-责任链chain-of-responsibility) + - [Intent](#intent-6) + - [Class Diagram](#class-diagram-6) + - [Implementation](#implementation-6) + - [JDK](#jdk-5) + - [2. 命令(Command)](#2-命令command) + - [Intent](#intent-7) + - [Class Diagram](#class-diagram-7) + - [Implementation](#implementation-7) + - [JDK](#jdk-6) + - [3. 解释器(Interpreter)](#3-解释器interpreter) + - [Intent](#intent-8) + - [Class Diagram](#class-diagram-8) + - [Implementation](#implementation-8) + - [JDK](#jdk-7) + - [4. 迭代器(Iterator)](#4-迭代器iterator) + - [Intent](#intent-9) + - [Class Diagram](#class-diagram-9) + - [Implementation](#implementation-9) + - [JDK](#jdk-8) + - [5. 中介者(Mediator)](#5-中介者mediator) + - [Intent](#intent-10) + - [Class Diagram](#class-diagram-10) + - [Implementation](#implementation-10) + - [JDK](#jdk-9) + - [6. 备忘录(Memento)](#6-备忘录memento) + - [Intent](#intent-11) + - [Class Diagram](#class-diagram-11) + - [Implementation](#implementation-11) + - [JDK](#jdk-10) + - [7. 观察者(Observer)](#7-观察者observer) + - [Intent](#intent-12) + - [Class Diagram](#class-diagram-12) + - [Implementation](#implementation-12) + - [JDK](#jdk-11) + - [8. 状态(State)](#8-状态state) + - [Intent](#intent-13) + - [Class Diagram](#class-diagram-13) + - [Implementation](#implementation-13) + - [9. 策略(Strategy)](#9-策略strategy) + - [Intent](#intent-14) + - [Class Diagram](#class-diagram-14) + - [与状态模式的比较](#与状态模式的比较) + - [Implementation](#implementation-14) + - [JDK](#jdk-12) + - [10. 模板方法(Template Method)](#10-模板方法template-method) + - [Intent](#intent-15) + - [Class Diagram](#class-diagram-15) + - [Implementation](#implementation-15) + - [JDK](#jdk-13) + - [11. 访问者(Visitor)](#11-访问者visitor) + - [Intent](#intent-16) + - [Class Diagram](#class-diagram-16) + - [Implementation](#implementation-16) + - [JDK](#jdk-14) + - [12. 空对象(Null)](#12-空对象null) + - [Intent](#intent-17) + - [Class Diagram](#class-diagram-17) + - [Implementation](#implementation-17) +- [四、结构型](#四结构型) + - [1. 适配器(Adapter)](#1-适配器adapter) + - [Intent](#intent-18) + - [Class Diagram](#class-diagram-18) + - [Implementation](#implementation-18) + - [JDK](#jdk-15) + - [2. 桥接(Bridge)](#2-桥接bridge) + - [Intent](#intent-19) + - [Class Diagram](#class-diagram-19) + - [Implementation](#implementation-19) + - [JDK](#jdk-16) + - [3. 组合(Composite)](#3-组合composite) + - [Intent](#intent-20) + - [Class Diagram](#class-diagram-20) + - [Implementation](#implementation-20) + - [JDK](#jdk-17) + - [4. 装饰(Decorator)](#4-装饰decorator) + - [Intent](#intent-21) + - [Class Diagram](#class-diagram-21) + - [Implementation](#implementation-21) + - [设计原则](#设计原则) + - [JDK](#jdk-18) + - [5. 外观(Facade)](#5-外观facade) + - [Intent](#intent-22) + - [Class Diagram](#class-diagram-22) + - [Implementation](#implementation-22) + - [设计原则](#设计原则-1) + - [6. 享元(Flyweight)](#6-享元flyweight) + - [Intent](#intent-23) + - [Class Diagram](#class-diagram-23) + - [Implementation](#implementation-23) + - [JDK](#jdk-19) + - [7. 代理(Proxy)](#7-代理proxy) + - [Intent](#intent-24) + - [Class Diagram](#class-diagram-24) + - [Implementation](#implementation-24) + - [JDK](#jdk-20) +- [参考资料](#参考资料) @@ -152,7 +158,7 @@ 私有构造函数保证了不能通过构造函数来创建对象实例,只能通过公有静态函数返回唯一的私有静态变量。 -

+![](image/2021-04-10-16-48-05.png) ### Implementation diff --git a/设计模式/image/2021-04-10-16-48-05.png b/设计模式/image/2021-04-10-16-48-05.png new file mode 100644 index 0000000000000000000000000000000000000000..fbd1093c3e397984da5a85c4102ac8c5ff288e8e GIT binary patch literal 16759 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 KED_iL^nU@YgGDv~ literal 0 HcmV?d00001 diff --git a/设计模式/refactor/重构规划书.md b/设计模式/refactor/重构规划书.md new file mode 100644 index 00000000..ee2b42f4 --- /dev/null +++ b/设计模式/refactor/重构规划书.md @@ -0,0 +1,18 @@ +# SimuRosot项目重构规划书 + +## 1 重构的目标 + +- 增强可读性(**自动生成项目的说明文档**) +- 增强可扩展性,降低模块的耦合和代码的冗余。面向对象、接口。 +- 增强可修改性,方便代码进行修改和扩展。 + +## 2 重构的流程 + +- [ ] 重读设计模式和架构设计。使用更好的架构和模块设计方案。(给出一个**架构设计说明书**)。 +- [ ] 了解重构工具和重构的方法。熟练掌握C++项目重构过程。 +- [ ] 熟读源代码,对架构设计说明书进行增删修改。完成最终的架构设计说明书。 +- [ ] 使用vs对**项目**架构进行重构。 + +> 方案1:主要还是重新设计项目,把项目内的其他代码赋值黏贴出来。让它成为一个新的能够运行的小项目。 +> +> 方案2:重新设计项目,然后在原有的代码上进行重构。 \ No newline at end of file