加载中
结构模式之组合模式

1 概述 组合模式(Composite Pattern),是指把一类有共同抽象的对象组合在一起,形成树状结构,来表示部分-整体的关系。 2 组合模式 我们经常会遇到一些对象有相同的行为,同时对象之间又有层...

前天 21:57
91
结构模式之适配器模式

1 概述 适配器模式(Adapter Pattern),从名字就可以看出,工作模式类似于适配器:将原本不兼容的两样事物连接,以协同工作。 2 适配器模式 充电器(电源适配器)是日常生活中常见的例子。大多手...

04/04 15:01
124
结构模式之桥接模式

1 概述 上一篇文章 介绍了外观模式,接下来介绍桥接模式。桥接模式有时也被称为桥梁模式,也是一种常见结构模式,它主要体现了面向对象设计中的两个思想: 面向接口编程。 合成复用原则,即组...

03/30 20:49
26
结构模式之外观模式

1 概述 外观模式,也叫门面模式,是一种常见结构模式,它是面向对象设计封装思想的体现。 2 外观模式 所谓外观,其实是一个额外的类,它包含了复杂多变的子系统,并只对外提供简单的接口。相...

03/29 14:31
21
创建型模式之单例模式

1 概述 单例模式应该是最简单,同时又是最复杂的一种创建型模式。因为大家都知道这个模式:无非就是保证某个对象在系统中只存在一个实例。然而想要真正实现一个完美的单例模式,却不简单。 ...

03/28 22:19
21
创建型模式之原型模式

1 概述 原型模式比较好理解,即以某个对象为原型,创建该对象的副本。我们可以不用知道对象内部的属性以及内部的状态,是迪米特法则的很好体现。 2 原型模式 原型模式一般用在较为复杂对象的...

03/26 21:15
17
创建型模式之建造者模式

1 概述 前面我们说了工厂模式和抽象工厂模式,下面来说说建造者模式。 建造者模式也是一种极为常见的创建型模式,前面提到的两类工厂模式隐藏了类的属性与构造细节,而建造者模式通过Builder...

03/22 14:23
59
创建型模式之抽象工厂模式

1 概述 上一篇文章讲到了工厂方法模式,它提供了一种在不指定具体实现的情况下,创建类实例的解决方案。那为什么还需要抽象工厂模式呢? 2 抽象工厂模式 抽象工厂模式本质上,也是定义一个工...

03/21 13:24
67
创建型模式之工厂模式

1 概述 创建型模式,提供了一种创建对象的最佳实践。工厂方法模式的核心思想,是通过统一的工厂类来获取对象,而不需要调用类的构造方法。 2 优点 可以将类的实例化过程延缓到子类。调用者无...

03/20 22:33
35
设计模式之六大原则

1 概述 在面向对象的编程中,要实现一个功能,可以有非常多的方式。在多年的经验积累总结下来,人们发现优秀的的代码总是遵循一定的范式。其中23种设计模式(Design Patterns),就是前人对优秀...

03/15 17:53
57
SpringBoot服务无法读取系统变量,我进一步认识了profile和bashrc

背景 CentOS服务器上,我们用Systemd部署了一个SpringBoot服务。关于如何部署,可以参考这篇文章。这个SpringBoot服务会用ProcessBuilder去调用机器上一个C++的可执行文件。 问题描述 Spring...

SpringBoot以服务形式启动,并设置JVM启动参数

1 概述 SpringBoot使得我们可以快速地上手以及开发Spring项目。我们可以把工程打成一个jar包,然后部署到服务器上(这里只讨论Linux,因为没多少人会拿Windows当服务器)。nohup命令可以让程序...

03/05 22:34
171
pyinstaller打包的程序无法执行,提示Operation not permitted解决

前言 PyInstaller是一个强大的工具,它可以分析我们的python脚本,发现脚本执行所依赖的模块,并将他们打包到一个文件夹,或者封装成一个可执行文件(exe或者binary)。然后,我们就可以将这个...

03/03 14:36
82
递归设置文件的用户/组/权限的java实现

前言 自从1.4版本开始,Java引入了Nio包,提供了更强大的IO功能。 本文简单介绍如何用java.nio.file.attribute下的工具类修改文件的权限,用户和组。因为本类库是针对Posix类系统的的,所以主...

02/29 16:14
119
Unable to open debugger port错误解决

原因 IntelliJ Debug模式下,启动Tomcat报错Unable to open debugger port 可能的原因有二: 目标端口被占用 文件权限不足 解决 目标端口占用 这种情况比较常见。Tomcat启动需要监听一个端口...

01/03 21:05
38
深入理解Threadlocal

前言 并发是Java开发中绕不开的一个话题。现代处理器都是多核心,想要更好地榨干机器的性能,多线程编程是必不可少,所以,线程安全是每位Java Engineer的必修课。 应对线程安全问题,可大致...

01/02 09:27
16
Java四种引用类型详解

前言 为了满足对不同情况的垃圾回收需求,从Java从版本1.2开始,引入了4种引用类型(其实是额外增加了三种)的概念。本文将详细介绍这四种引用。 Java 4种引用类型 Java中的4中引用类型分别为强...

01/01 23:46
68
如何优雅地重启Spring Scheduler

定时任务是一个比较常见的功能,在某些情况下,需要重新启动或者是重设Scheduler Job,但是官方的API上都没有提供类似restart的方法,那该如何完成此需求呢? Spring Quartz Spring Quartz是...

2019/12/26 15:43
25
InstanceAlreadyExistsException的解决方案

背景 JMX Java Coder们都知道,Java提供了JMX(Java Management Extensions) attach的机制(如JConsole),可以动态获取JVM运行时的一些信息。我们可以自定义MBean,来暴露指定的一些参数值,如...

类卸载之后无法删除源文件 PF4J

背景 我们有一个Plugin的管理系统,可以实现Jar包的热装载,内部是基于一个Plugin管理类库PF4J,类似于OSGI,现在是GitHub上一个千星项目。 以下是该类库的官网介绍 A plugin is a way for ...

2019/12/12 10:31
93

没有更多内容

加载失败,请刷新页面

返回顶部
顶部