自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

xcosy

everything is cosy

原创 JupyterLab

JupyterLab是一个交互式的开发环境,是Jupyter Notebook的下一代产品,集成了更多的功能。使用JupyterLab,能够以灵活,集成和可扩展的方式处理文档和活动: 可以开启终端,用于交互式运行代码,完全支持丰富的输出 支持Markdown,Python,R,LaTeX等任何文...

2020-05-10 23:57:03 41 0

原创 Linux运维三剑客

原始文本文件(test.txt): [xcosy@codedancing ~]$ cat ./test.txt 序号 姓名 毕业院校 学院 专业 1 Bob 华中科技大学 软件学院 软件工程 2 Alice 清华大学 机械工程学院 机械工程 3 John 北京大学 人文学院 哲学 4 Nike ...

2020-04-24 13:57:35 62 0

原创 Linux中的top命令

top 命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,默认进入top时,各进程是按照CPU的占用量来排序的。 常用参数 -u <username> 查看指定用户的进程 -p <PID> 查看指定进程 命令显示 top - 20:45:54...

2020-03-18 22:09:07 46 0

原创 访问者模式

定义 访问者(Visitor)模式将作用于某种数据结构中的各元素的操作分离出来封装成独立的类,使其在不改变数据结构的前提下可以添加作用于这些元素的新的操作,为数据结构中的每个元素提供多种访问方式。它将对数据的操作与数据结构进行分离。 访问者模式属于对象行为型模式,是行为型模式中最复杂的一种模式。 ...

2020-03-09 20:34:53 45 0

原创 策略模式

定义 策略(Strategy)模式定义了一系列算法,并将每个算法封装起来,使它们可以相互替换,且算法的变化不会影响使用算法的客户,通过对算法进行封装,把使用算法的责任和算法的实现分割开来,并委派给不同的对象对这些算法进行实现和管理。 策略模式属于对象行为型模式。 要点 优点: 多重条件语句不易...

2020-03-09 18:20:28 43 0

原创 状态模式

定义 状态(State)模式对有状态的对象,把复杂的 “判断逻辑” 提取到不同的状态对象中,允许状态对象在其内部状态发生改变时改变其行为。 状态模式属于对象行为型模式。 要点 优点: 状态模式将与特定状态相关的行为局部化到一个状态中,并且将不同状态的行为分割开来,满足“单一职责原则”。 减少对...

2020-03-09 17:38:52 57 0

原创 观察者模式

定义 观察者(Observer)模式 又称发布-订阅模式、模型-视图模式,指多个对象间存在一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。 观察者模式属于对象行为型模式。 要点 优点: 降低了目标与观察者之间的耦合关系,两者之间是抽象耦合关系。 目标与观...

2020-03-08 23:46:48 51 0

原创 备忘录模式

定义 备忘录(Memento)模式又叫快照模式,在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,以便以后当需要时能将该对象恢复到原先保存的状态。 备忘录模式属于对象行为型模式。 要点 优点: 提供了一种可以恢复状态的机制。当用户需要时能够比较方便地将数据恢复到某个历...

2020-03-08 21:08:38 25 0

原创 中介者模式

定义 中介者(Mediator)模式又称又叫调停模式,定义一个中介对象来封装一系列对象之间的交互,使原有对象之间的耦合变得松散,且可以独立地改变它们之间的交互。它是迪米特法则的典型应用。 中介者模式属于对象行为型模式。 要点 优点: 降低了对象之间的耦合性,使得对象易于独立地被复用。 将对象间...

2020-03-08 16:42:31 92 0

原创 迭代器模式

定义 迭代器(Iterator)模式提供一个对象来顺序访问聚合对象中的一系列数据,而不暴露聚合对象的内部表示。 迭代器模式是一种对象行为型模式。 要点 迭代器模式是通过将聚合对象的遍历行为分离出来,抽象成迭代器类来实现的,其目的是在不暴露聚合对象的内部结构的情况下,让外部代码透明地访问聚合的内部...

2020-03-07 23:15:44 20 0

原创 命令模式

定义 命令(Command)模式将一个请求封装为一个对象,使发出请求的责任和执行请求的责任分割开。这样两者之间通过命令对象进行沟通,这样方便将命令对象进行储存、传递、调用、增加与管理。 命令模式属于对象行为型模式。 要点 优点: 降低系统的耦合度。命令模式能将调用操作的对象与实现操作的对象解耦...

2020-03-07 19:09:49 53 0

原创 责任链模式

定义 责任链(Chain of Responsibility)模式又称职责链模式,是为了避免请求发送者与多个请求处理者耦合在一起,将所有请求的处理者通过前一对象记住其下一个对象的引用而连成一条链;当有请求发生时,可将请求沿着这条链传递,直到有对象处理它为止。 在责任链模式中,客户只需要将请求发送到...

2020-03-06 18:06:38 15 0

原创 解释器模式

定义 解释器(Interpreter)模式给分析对象定义一个语言,并定义该语言的文法表示,再设计一个解析器来解释语言中的句子。也就是说,用编译语言的方式来分析应用中的实例。这种模式实现了文法表达式处理的接口,该接口解释一个特定的上下文。 解释器模式属于类行为型模式。 要点 优点: 扩展性好。由...

2020-03-06 16:52:19 37 0

原创 模板方法模式

定义 模板方法(Template Method)模式定义一个操作的算法骨架,而将算法的一些步骤延迟到子类中,使得子类可以不改变该算法结构的情况下重定义该算法的某些特定步骤。 模板方法模式属于类行为型模式。 要点 优点: 封装了不变部分,扩展可变部分。它把认为是不变部分的算法封装到父类中实现,而把...

2020-03-06 12:36:38 51 0

原创 过滤器模式

定义 过滤器模式(Intercepting Filter Pattern),又称标准模式(Criteria Pattern),主要用于统一接收并过滤客户端的请求,根据过滤器的选择,将请求传送给对应的目标处理程序。 过滤器模式属于对象结构型模式。 要点 主要角色: 目标对象(Target):处理请...

2020-03-06 11:07:39 58 0

原创 代理模式(动态代理)

静态代理模式的缺点 当场景稍微复杂一些的时候,静态代理的缺点也会暴露出来: 1、当需要代理多个类的时候,由于代理对象要实现与目标对象一致的接口,如果只维护一个代理类,由这个代理类实现多个接口,但是这样就导致代理类过于庞大;如果新建多个代理类,每个目标对象对应一个代理类,但是这样会产生过多的代理类。...

2020-03-06 00:02:30 32 0

原创 代理模式(静态代理)

定义 **代理模式(Proxy)**为一个对象提供一个替身或占位符以控制对这个对象的访问。访问对象不适合或者不能直接引用目标对象,代理对象作为访问对象和目标对象之间的中介。 使用代理模式创建代理对象,让代理对象(representative)控制对某对象的访问,被代理的对象可以是远程对象、创建开销...

2020-03-05 12:00:20 47 0

原创 享元模式

定义 享元(Flyweight)模式又称蝇量模式,主要运用共享技术来有效地支持大量细粒度对象的复用。主要用于减少创建对象的数量,以减少内存占用和提高性能。 如果想要让某个类的一个实例用来提供许多 “虚拟实例” ,就可以考虑使用享元模式。 享元模式属于对象结构型模式。 要点 优点: 可以极大减少...

2020-03-04 16:18:44 30 0

原创 Maven常见配置及本地仓库清理(Linux)

常见配置 <?xml version="1.0" encoding="UTF-8"?> <project>xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xs...

2020-03-03 14:10:15 666 0

原创 Maven使用profile进行项目多环境配置切换

在项目开发时,我们本地搭建的开发dev环境,开发完成打包部署到服务器时,用到的是服务器prod环境。可以借用Maven的profiles、filters和resources,在运行或打包时指定选用的环境,实现不同环境自动使用各自环境的配置文件或配置信息。 maven profile可使用操作系统信...

2020-03-03 13:30:16 90 0

原创 【Java】getClass().getClassLoader().getResourceAsStream() 与 getClass().getResourceAsStream()的区别

代码 public static void main(String[] args) { Properties properties = new Properties(); System.out.println(getClass().getResource("").get...

2020-03-03 11:54:01 59 0

原创 外观模式

定义 外观(Facade)模式是一种通过为多个复杂的子系统提供一个统一的接口,而使这些子系统更加容易被访问的模式。该模式对外有一个统一接口,外部应用程序不用关心内部子系统的具体的细节,这样会大大降低应用程序的复杂度,提高了程序的可维护性。 外观模式属于对象结构型模式。 要点 外观(Facade)...

2020-02-29 22:19:21 15 0

原创 组合模式

定义 组合(Composite)模式:又称作部分整体模式,它是一种将对象组合成树状的层次结构的模式,用来表示 “部分-整体” 的关系,使用户对单个对象和组合对象具有一致的访问性。 组合模式属于对象结构型模式。 要点 组合模式的优点: 组合模式使得客户端代码可以一致地处理单个对象和组合对象,无须...

2020-02-29 20:59:08 32 0

原创 虚拟化容器技术与Docker

虚拟机(virtual machine) 虚拟机就是带环境安装的一种解决方案。它可以在一种操作系统里面运行另一种操作系统,比如在 Windows 系统里面运行 Linux 系统。应用程序对此毫无感知,因为虚拟机看上去跟真实系统一模一样,而对于底层系统来说,虚拟机就是一个普通文件,不需要了就删掉,对...

2020-02-27 14:32:05 94 0

原创 装饰者模式

定义 装饰者(Decorator)模式是指在不改变现有对象结构的情况下,动态地给该对象增加一些职责(即增加其额外功能)的模式。 装饰者模式可以动态地将责任附加到对象上,若要扩展功能,装饰者提供了比继承更有弹性的替代方案。 装饰者模式属于对象结构型模式。 要点 装饰者和被装饰对象有相同的超类型。...

2020-02-27 13:52:52 49 0

原创 桥接模式

定义 桥接模式(Bridge)将抽象与实现分离,使它们可以独立变化。它是用组合关系代替继承关系来实现,从而降低了抽象和实现这两个可变维度的耦合度。 【优点】 抽象与实现分离,扩展能力强; 实现细节对客户透明。 【缺点】 由于聚合关系建立在抽象层,要求开发者针对抽象化进行设计与编程,增加了系统的理解...

2020-02-25 12:19:21 81 0

原创 Python安装虚拟环境 virtualenv 和 virtualenvwrapper

virtualenv 创建“独立”的Python运行环境的原理 把原始 Python 环境复制一份到 virtualenv 的环境,用命令 source venv/bin/activate 进入一个 virtualenv 环境时,virtualenv 会修改相关环境变量,让命令 python 和 ...

2020-01-17 11:34:09 154 0

原创 Linux环境下的用户组和用户管理

1. 概述 在Linux环境下,用户组可以让多个用户具有相同的权限,也就是说,一个用户可以属于多个用户组,并同时拥有这些用户组的权限,这就引出了主组(也称初始组)和附加组,使用 groups 命令可以查看该用户的用户组。 codedancing adm cdrom sudo dip plugdev...

2020-01-13 13:02:05 73 0

原创 Linux安装Python失败常见缺失依赖项

1._ctypes 模块构建失败 build correctly but finished with this message: Failed to build these modules: _ctypes 解决 Are you using Ubuntu or other...

2020-01-12 18:11:50 301 0

原创 使用 conda 过程中的问题解决

conda 使用 conda deactivate 命令时出现 CommandNotFoundError codedancing@Ubuntu:/usr/local/anaconda3$ conda deactivate CommandNotFoundError: Your shell has...

2020-01-11 19:08:58 1675 0

原创 Linux下多用户Anaconda环境的安装与卸载

Anaconda 的默认安装选项为用户独立安装,默认将 Anaconda 安装在该用户的 home 目录下,不会与同一系统上的其他用户共享。 如果您具有管理员操作权限,则可以选择所有用户进行安装。对于要允许用户导入 Python 库并运行 Python 应用程序的多用户系统,这是一个不错的选择。 ...

2020-01-11 15:21:09 434 0

原创 Python小知识(二)

与 C 和 JAVA 不一样,Python 不支持自增( ++ )和自减( -- ) python 中的运算符优先级 乘除优先加减 位运算和算术运算 > 比较运算符 > 赋值运算符 > 逻辑运算符 ...

2020-01-07 12:44:06 38 0

原创 Python小知识(一)

Python 数据类型 不可变数据(3 个):Number(数字)、String(字符串)、Tuple(元组); 可变数据(3 个):List(列表)、Dictionary(字典)、Set(集合)。 isinstance 和 type 的区别 type() 不会认为子类是一种父类类型...

2020-01-06 18:18:42 65 0

原创 Linux防止文件和目录被意外删除或修改

为了防止在Linux系统中意外删除一些重要文件或目录,除了必要的备份之外,还有一个好方法,就是使用: chattr(Change Attribute)命令 在类 Unix 等发行版中,该命令能够有效防止文件和目录被意外的删除或修改。file 文件在 Linux 中被描述为一个数据结构,chattr...

2020-01-04 18:09:22 279 0

原创 Linux主机之间传输文件的四种主流方式

经常使用,今天顺便整理一下~ 1、scp scp 是 secure copy 的简写,是linux系统下基于 ssh(Secure Shell)登陆进行安全的远程文件拷贝命令,scp 命令可以在 linux 服务器之间复制文件和目录。 当服务器硬盘变为只读 read only system 时,用...

2019-12-31 12:20:32 94 1

原创 适配器模式

定义 适配器模式(Adapter Pattern)将某个类的接口转换成客户期望的另一个接口表示,主要的目的是拥有兼容性,让原本因接口不匹配不能一起工作的两个类可以协同工作。 适配器模式属于结构型模式。 主要分为两类:类(接口)适配器模式、对象适配器模式 例如在欧洲国家使用美国制造的笔记本电脑,可...

2019-12-27 18:20:20 18 0

原创 周易哲学(一):干支纪年法和四柱八字

什么是支干纪年、支干纪月、支干纪日、二十四节气? 1、支干纪年

2019-12-22 14:00:21 405 0

原创 建造者模式

定义 建造者模式(Builder Pattern)是一种对象构建模式,用来封装一个产品的构造过程,并允许按步骤构造产品。 建造者模式又叫生成器模式,建造者模式属于创建型模式。   要点 经常被用来创建组合结构 将复杂对象的建造过程抽象出来(抽象类别),使这个抽象过程的不同实现方法可以构...

2019-12-07 16:34:27 28 0

原创 原型模式

定义 当创建给定的实例的过程很昂贵或很复杂时,就是用原型模式(Prototype Pattern)。 用原型实例指定创建对象的种类,并且通过拷贝这些原型,创建新的对象。 原型模式属于创建型模式。   要点 原型模式允许通过复制现有的实例来创建新的实例,在Java中,这通常意味着使用 cl...

2019-12-04 18:41:32 26 0

原创 工厂模式

定义 工厂模式(Factory Method)是由一个工厂对象决定创建出哪一种产品类的实例。定义一个创建对象的类,由这个类来封装实例化对象的行为。 一般情况下,我们称被创建的对象称为“产品”,把创建产品的对象称为“工厂”。 工厂模式有三类:简单工厂模式、工厂模式、 抽象工厂模式。 工厂模式属于创建...

2019-11-27 21:09:46 21 0

提示
确定要删除当前文章?
取消 删除