<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[✧V的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/Timor61</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; Timor61]]></copyright><item><title><![CDATA[Ubuntu18.04 下 CUDA 11.4和 Pytorch 11.4安装]]></title><link>https://blog.youkuaiyun.com/Timor61/article/details/128039733</link><guid>https://blog.youkuaiyun.com/Timor61/article/details/128039733</guid><author>Timor61</author><pubDate>Fri, 25 Nov 2022 16:18:34 +0800</pubDate><description><![CDATA[Ubuntu18.04 下 CUDA 11.4和 Pytorch 11.4安装]]></description><category></category></item><item><title><![CDATA[MySQL  基础入门]]></title><link>https://blog.youkuaiyun.com/Timor61/article/details/107348732</link><guid>https://blog.youkuaiyun.com/Timor61/article/details/107348732</guid><author>Timor61</author><pubDate>Sun, 19 Jul 2020 14:11:13 +0800</pubDate><description><![CDATA[MySQL——基础介绍

常见命令

查看mysql版本

# 方式一:
mysql &gt; select version();  # 登录到mysql服务端
# 方式二:
mysql --version;  # 没有登录到mysql服务端
# 方式三:
mysql --V;  # 没有登录到mysql服务端


常见操作命令

show database;  # 查看所有数据库

use [库名];  # 打开指定数据库

show tables;  # 查看当前所有表
show tables fro.]]></description><category></category></item><item><title><![CDATA[JAVA 职责链模式]]></title><link>https://blog.youkuaiyun.com/Timor61/article/details/106368087</link><guid>https://blog.youkuaiyun.com/Timor61/article/details/106368087</guid><author>Timor61</author><pubDate>Wed, 27 May 2020 00:13:06 +0800</pubDate><description><![CDATA[文章目录

介绍

职责链模式

实现

介绍

描述

职责链模式设计模式属于行为型模式，为请求创建了一个接受者对象的链，对发送者和接收者进行解耦。特点


	优点：实现解耦，提高系统的灵活性，简化了对象，使对象不需要知道链的结构，可以动态的添加接收者。
	
	
	缺点：性能会收到影响，当链条过长的时候，因此需要控制最大节点数量，对于循环链条，当出现请求不被处理时候会导致循环调用。
	
实现原理

通常每个接收者都包含对另一个接收者的引用，如果一个对象不能处理该请求，就下放到另一个接收者，依次类推。
..]]></description><category></category></item><item><title><![CDATA[JAVA 策略模式]]></title><link>https://blog.youkuaiyun.com/Timor61/article/details/106367614</link><guid>https://blog.youkuaiyun.com/Timor61/article/details/106367614</guid><author>Timor61</author><pubDate>Tue, 26 May 2020 23:32:50 +0800</pubDate><description><![CDATA[介绍

描述

策略模式设计模式属于行为型模式，定义了一系列的算法，并将每一个算法封装起来，使每个算法可以相互替代，使算法本身和使用算法的客户端分割开来，相互独立。特点


	优点：取代大量的if-else操作，可以自由切换，拓展性好。
	
	
	缺点：每添加一个策略，就要增加一个类导致策略类过多。
	
实现原理

IStrategy（策略接口角色）：用来指定具体的策略算法，策略上下文角色 ConcreteStrategy 实现具体的策略算法。

ConcreteStrategy（具体策略实现角色）：具..]]></description><category></category></item><item><title><![CDATA[JAVA 状态模式]]></title><link>https://blog.youkuaiyun.com/Timor61/article/details/106324769</link><guid>https://blog.youkuaiyun.com/Timor61/article/details/106324769</guid><author>Timor61</author><pubDate>Mon, 25 May 2020 01:26:54 +0800</pubDate><description><![CDATA[文章目录

介绍

状态模式

实现

介绍

描述

状态模式设计模式属于行为型模式，对于控制一个对象状态转换的条件表达式过于复杂时，将其特定的状态相关的行为都放入一个对象中，通过定义新的状态类去改变当前上下文状态从而改变它的相关行为。特点


	优点：取代大量的if-else操作，多个环境对象共享一个状态对象，减少相互间的依赖。
	
	
	缺点：增加系统类和对象的个数，导致系统维护难度增加。
	
实现原理

将同一个状态对象传入，在不同的状态中，改变实例变量的值。

Context（上下文类）：在环..]]></description><category></category></item><item><title><![CDATA[JAVA 观察者模式]]></title><link>https://blog.youkuaiyun.com/Timor61/article/details/106324163</link><guid>https://blog.youkuaiyun.com/Timor61/article/details/106324163</guid><author>Timor61</author><pubDate>Mon, 25 May 2020 00:53:04 +0800</pubDate><description><![CDATA[文章目录

介绍

观察者模式

实现

介绍

描述

观察者模式设计模式属于行为型模式，即当一个对象的状态发生改变时，所有依赖于它的对象都得到通知并被自动更新，介于对象之间多对一依赖的一种设计方案。特点


	优点：观察者和被观察者是抽象耦合的，通过集合的方式来管理。
	
	
	缺点：观察者较多时候都通知到会花费很多时间。
	
实现原理

Subject：就是定义相关观察者的增删改操作，“被观察”的角色需要继承实现其具体操作，同时把所有观察者对象的引用保存在一个集合中。

Observer：是抽象的..]]></description><category></category></item><item><title><![CDATA[JAVA 迭代器模式]]></title><link>https://blog.youkuaiyun.com/Timor61/article/details/106305084</link><guid>https://blog.youkuaiyun.com/Timor61/article/details/106305084</guid><author>Timor61</author><pubDate>Sat, 23 May 2020 19:43:16 +0800</pubDate><description><![CDATA[介绍

描述

迭代器模式设计模式属于行为型模式，通过提供一种方法顺序访问聚合对象中的各个元素，而又不需要明确暴露该对象的内部实现，不需要知道集合底层的实现。特点


	优点：支持以不同的方式遍历，新的数据聚合类和迭代器的拓展方便，形成存储数据＋遍历方式的解偶。
	
	
	缺点：职责分离导致新的数据类的遍历可能需要新的遍历迭代类与之对应，增加了复杂性。
	
实现原理

迭代器角色（Iterator）：迭代器角色负责定义访问和遍历元素的接口。

具体迭代器角色（Concrete Iterator）：具体迭..]]></description><category></category></item><item><title><![CDATA[JAVA 备忘录模式]]></title><link>https://blog.youkuaiyun.com/Timor61/article/details/106246587</link><guid>https://blog.youkuaiyun.com/Timor61/article/details/106246587</guid><author>Timor61</author><pubDate>Wed, 20 May 2020 23:12:27 +0800</pubDate><description><![CDATA[文章目录

介绍

备忘录模式

实现

介绍

描述

备忘录模式设计模式属于行为型模式，捕获一个对象的内部状态，并在该对象之外保存这个状态，这样可以在以后将对象恢复到原先保存的状态。

特点

优点：可以恢复到之前的状态，实现了信息的封装。

缺点：被备忘的类的成员变量过多，势必会占用比较大的资源，而且每一次保存都会消耗一定的内存。

实现原理

备忘录类Memento，专门存储当前被备忘对象的某些状态，维护CareTaker类存储多个Memento，来方便获取备忘的信息。

适用


	需要保存/恢复]]></description><category></category></item><item><title><![CDATA[JAVA 中介者模式]]></title><link>https://blog.youkuaiyun.com/Timor61/article/details/106225240</link><guid>https://blog.youkuaiyun.com/Timor61/article/details/106225240</guid><author>Timor61</author><pubDate>Tue, 19 May 2020 23:37:06 +0800</pubDate><description><![CDATA[文章目录

介绍

命令模式

实现

介绍

描述

中介者模式设计模式属于行为型模式，是作为通信双方的中介，代理双方，用一个中介对象类封装一系列对象之间的交互。

特点

优点：简化了对象之间打的关系，将系统对象之间的相互关系进行封装，将各个同事类之间的联系进行解耦。

缺点：由于封装对象之间的交互关系，导致中介类的逻辑关系变得复杂，系统维护比较困难。

实现原理

Mediator作为抽象中介者，ConcreteMediator作为具体中介者实现Mediator，需要知道所有的同事类，并且同事类将发送]]></description><category></category></item><item><title><![CDATA[JAVA 命令模式]]></title><link>https://blog.youkuaiyun.com/Timor61/article/details/106208024</link><guid>https://blog.youkuaiyun.com/Timor61/article/details/106208024</guid><author>Timor61</author><pubDate>Tue, 19 May 2020 10:50:14 +0800</pubDate><description><![CDATA[文章目录

介绍

命令模式

实现

介绍

描述

命令模式设计模式属于行为型模式，将一个请求封装成一个对象，从而让你使用不同的请求把客户端参数化，对请求排队或者记录请求日志，可以提供命令的撤销和恢复功能。

特点

优点：消除了请求发送者和具体指定接收者的耦合，让对象之间的调用关系更加灵活、新的关系也更容易添加。

缺点：可能导致系统产生许多个接收者类。

实现原理

当我们调用时，执行的时序首先是调用者类，然后是命令类，最后是接收者类。也就是说一条命令的执行被分成了三步，即调用者-&gt;命令-&g]]></description><category></category></item><item><title><![CDATA[JAVA  模板模式]]></title><link>https://blog.youkuaiyun.com/Timor61/article/details/106207075</link><guid>https://blog.youkuaiyun.com/Timor61/article/details/106207075</guid><author>Timor61</author><pubDate>Tue, 19 May 2020 09:53:44 +0800</pubDate><description><![CDATA[文章目录

介绍

模板模式

实现

介绍

描述

模板模式设计模式属于行为型模式，是指一个抽象类公开定义了执行它的方法的模板，它的子类可以按要求重写方法实现，但调用将以抽象类中定义的方式进行。（例如：定义一个操作中的算法的骨架，而将一些步骤延迟到子类中，使得子类可以不改变算法的结构的条件下，就可以重定义该算法的某些特定步骤）。

特点

优点：封装不变部分，扩展可变部分、提取公共代码、行为由父类控制，子类实现。

缺点：每一个不同的实现都需要一个子类来实现，导致类的个数增加。

实现原理

行为由抽象]]></description><category></category></item><item><title><![CDATA[JAVA 代理模式]]></title><link>https://blog.youkuaiyun.com/Timor61/article/details/106163916</link><guid>https://blog.youkuaiyun.com/Timor61/article/details/106163916</guid><author>Timor61</author><pubDate>Sat, 16 May 2020 21:36:28 +0800</pubDate><description><![CDATA[文章目录

介绍

代理模式

静态代理

动态代理

Cglib代理

介绍

描述

代理模式设计模式属于结构型模式，为当前类对象提供一个替身（一个类代表另一个类的功能），通过替身来控制对这个对象的访问，这样我们就可以在目标对象调用的基础上增加额外的功能。

特点

优点：拓展性强、能够协调调用者和被调用者。

缺点：中间增加的代理对象可能导致请求处理速度的变慢、实现代理的额外根据其不同方式可能实现复杂。

实现原理

增加中间层去取代直接调用的方式，而代理类实现与目标对象组合。

适用


	应用远.]]></description><category></category></item><item><title><![CDATA[JAVA 享元模式]]></title><link>https://blog.youkuaiyun.com/Timor61/article/details/106139992</link><guid>https://blog.youkuaiyun.com/Timor61/article/details/106139992</guid><author>Timor61</author><pubDate>Fri, 15 May 2020 14:12:14 +0800</pubDate><description><![CDATA[介绍

描述

享元模式设计模式属于结构型模式，主要用于减少创建对象的数量，以减少内存占用和提高性能，通过共享技术实现相同或相似对象的重用。即尝试重用现有的同类对象，如果未找到匹配的对象，才回去创建新对象。

特点

优点：大大减少对象的创建，降低系统的内存，使效率提高。

缺点：提高了系统的复杂度，需要分离出外部状态和内部状态。

实现原理

用 HashMap或其他去存储创建出的这些对象​，根据条件查看是否可以利用现有对象，如若不可则去创建​​​​​​。

抽象享元角色（FlyWeight）：是作为产品]]></description><category></category></item><item><title><![CDATA[JAVA 外观模式]]></title><link>https://blog.youkuaiyun.com/Timor61/article/details/106139590</link><guid>https://blog.youkuaiyun.com/Timor61/article/details/106139590</guid><author>Timor61</author><pubDate>Fri, 15 May 2020 13:09:07 +0800</pubDate><description><![CDATA[文章目录

介绍

外观模式

实现

介绍

描述

外观模式设计模式属于结构型模式，是隐藏系统的复杂性，并向客户端提供了一个可以访问系统的接口，涉及到一个单一的类，该类提供了客户端请求的简化方法和对现有系统方法的委托调用。当一个系统子系统越来越多，访问也将越来越复杂，当系统内部发生改变，客户端也要改变，违背了“开闭原则”和“迪米特法则” ，所以提供一个统一的接口，可以降低系统的耦合度。

特点

优点：对客户而言操作起来更加容易，降低了复杂性。

缺点：新的子类增加，就可能导致修改外观类。

实现...]]></description><category></category></item><item><title><![CDATA[JAVA 组合模式]]></title><link>https://blog.youkuaiyun.com/Timor61/article/details/106138767</link><guid>https://blog.youkuaiyun.com/Timor61/article/details/106138767</guid><author>Timor61</author><pubDate>Fri, 15 May 2020 12:40:15 +0800</pubDate><description><![CDATA[文章目录

介绍

组合模式

实现

介绍

描述

组合模式设计模式属于结构型模式，是用于把一组相似的对象当作一个单一的对象，将对象组合成树形结构以表示“部分-整体”的层次结构。

特点

优点：高层模块调用简单，且节点可以任意增加。

缺点：难以限定新构建的类型。

实现原理

抽象组件(Component)角色：为组合对象和叶子对象声明公共的接口，让客户端可以通过这个接口来访问和管理整个对象树，并可以为这些定义的接口提供缺省的实现。
	组合对象(Composite)角色：通常会存储子组件(组合对象、]]></description><category></category></item><item><title><![CDATA[JAVA  装饰者模式]]></title><link>https://blog.youkuaiyun.com/Timor61/article/details/106117727</link><guid>https://blog.youkuaiyun.com/Timor61/article/details/106117727</guid><author>Timor61</author><pubDate>Thu, 14 May 2020 13:40:37 +0800</pubDate><description><![CDATA[介绍

描述

装饰器模式设计模式属于结构型模式，是允许向一个现有的对象添加新的功能，进行多次包装，同时又不改变其结构。

特点

优点：装饰模式可以动态扩展一个实现类的功能。

缺点：多层装饰比较复杂。

实现原理

通常为了扩展一个类的功能经常使用继承方式实现，随着功能的增多，就会导致子类太多，为了在不增加许多子类的情况下扩展类，将拓展功能设置为新的类通过继承/实现 + 组合原本类的方式实现拓展。

适用


	扩展一个类的功能。
	
	
	动态增加功能，动态撤销。
	
装饰者模式

实现

第一步：创]]></description><category></category></item><item><title><![CDATA[JAVA  桥接模式]]></title><link>https://blog.youkuaiyun.com/Timor61/article/details/106115947</link><guid>https://blog.youkuaiyun.com/Timor61/article/details/106115947</guid><author>Timor61</author><pubDate>Thu, 14 May 2020 11:47:26 +0800</pubDate><description><![CDATA[文章目录

介绍

桥接模式

实现

介绍

描述

桥接模式设计模式属于结构型模式，是用于把抽象化和实现化进行解耦，通过提供之间的桥接结构，使得二者独立变化。

特点

优点：抽象和实现分离、拓展能力强。

缺点：桥接模式对于增加系统的理解和设计难度。

实现原理

原本的继承方式拓展中可能会造成大量类的生成，且扩展不灵活，将抽象部分于实现部分分离，通过抽象类依赖实现类，做到分离，减少之间的耦合。

适用


	适合不希望通过继承或者多层次继承导致类个数累加的系统，采用桥接模式。
	
	
	一个类存在两]]></description><category></category></item><item><title><![CDATA[JAVA 适配器模式]]></title><link>https://blog.youkuaiyun.com/Timor61/article/details/106062581</link><guid>https://blog.youkuaiyun.com/Timor61/article/details/106062581</guid><author>Timor61</author><pubDate>Mon, 11 May 2020 21:33:03 +0800</pubDate><description><![CDATA[介绍

描述

适配器模式设计模式属于结构型模式，是作为两个不兼容的接口之间的桥梁，即将一个现存的接口适配为期待的另一个接口。

特点

优点：适配器模式可以让两个没有任何关系得类在一起运行、提高了类的复用、增加了类的透明度、灵活性好。

缺点：过多地使用适配器，会让系统非常零乱，不易整体进行把握。

适用


	需要修改了一个已经投产中的接口。
	
	
	系统需要使用现有的类，而此类的接口不符合系统的需要。
	
	
	适配器模式最好在详细设计不要考虑它，它不是为了解决还处在开发阶段的问题，而是解决正在服役]]></description><category></category></item><item><title><![CDATA[JAVA  建造者模式]]></title><link>https://blog.youkuaiyun.com/Timor61/article/details/106045173</link><guid>https://blog.youkuaiyun.com/Timor61/article/details/106045173</guid><author>Timor61</author><pubDate>Mon, 11 May 2020 00:17:10 +0800</pubDate><description><![CDATA[介绍

描述

建造者模式设计模式属于创建型模式，通过多个简单的对象去简化一个复杂对象的构建。通过构建和装配的解耦，不同的构建器，也可以做出不同的对象，相同的构建器由于装配顺序的不同也可以做出不同的对象，也就是实现了构建算法、装配算法的分离，实现更好的复用。同时用户只需要指定复杂对象，而不用明确具体操作。

特点

优点：封装性好，创建和使用分离，无需修改源代码，一定程度上的解耦，方便代码的维护。

缺点：该类产品必须有相同点，使用范围有限，建造者模式创建出的对象其组成部分基本一致，若所构建对象之间差异较大]]></description><category></category></item><item><title><![CDATA[JAVA  原型模式]]></title><link>https://blog.youkuaiyun.com/Timor61/article/details/106029405</link><guid>https://blog.youkuaiyun.com/Timor61/article/details/106029405</guid><author>Timor61</author><pubDate>Sat, 09 May 2020 23:05:11 +0800</pubDate><description><![CDATA[原型模式

文章目录

原型模式

介绍

原型模式的几种实现方式

原型模式（浅拷贝）

原型模式（深拷贝）

介绍

描述

原型模式设计模式属于创建型模式，是用于创建重复的对象，对于当前指定对象创建对象种类，并且拷贝这些原型，创建出新的对象。

该模式一般适用于一个类直接创建对象所带来的代价比较高时，通过对已有缓存对象的克隆，在下一个次独立创建时返回他的克隆，以保证性能。

特点

性能有所提高，避免了通过new构造函数多次创建的过程。

实现原理

JAVA中Object类是所有类的根类，提供了一个]]></description><category></category></item></channel></rss>