技术栈

设计模式(8)状态模式

设计模式(8)状态模式

定义 状态模式中的行为是由状态来决定,不同的状态下有不同的行为。当一个对象的内在状态改变时允许改变其行为,这个对象看起来像是改变了其类。 使用场景 一个对象的行为取决于它的状态,并且它必须在运行时根据状态改变它的行为。 代码中包含大量与对象状态有关的条件语句,例如,一个操作中含有大量的多分支语

Joe.Ye Joe.Ye 2023-03-16
0 0 0
设计模式(7)策略模式

设计模式(7)策略模式

通常如果一个问题有多个解决方案时,最简单的就是利用if-else或者switch-case方式根据不同的情景选择不同的解决方案,但是这样耦合性太高、代码臃肿、难以维护等。这时就可以使用策略模式来解决。 定义 策略模式定义了一系列的算法,并将每一个算法封装起来,而且使他们还可以相互替换。策略模式让算

Joe.Ye Joe.Ye 2023-03-16
0 0 0
设计模式(6)抽象工厂模式

设计模式(6)抽象工厂模式

定义 为创建一组相关或者是相互依赖的对象提供一个接口,而不需要指定他们的具体实现类。 使用场景 一个对象族(或是一组没有任何关系的对象)都有相同的约束,则可以使用抽象工厂模式。例如一个文本编辑器和一个图片处理器,都是软件实体,但是Linix下的文本编辑器和WINDOWS下的文本编辑器虽然功能和界面

Joe.Ye Joe.Ye 2023-03-12
0 0 0
设计模式(5)工厂方法模式

设计模式(5)工厂方法模式

定义 定义一个用于创建对象的接口,让子类决定实例化那个类。 使用场景 在任何需生成复杂对象的地方,都可以使用工厂方法模式。复杂对象适合使用工厂模式,用new就可以完成创建的对象无需使用工厂模式。 模式的简单实现 抽象产品类: public abstract class Product {

Joe.Ye Joe.Ye 2023-03-12
0 0 0
设计模式(4)原型模式

设计模式(4)原型模式

定义 用原型实例指定创建对象的种类,并通过拷贝这些原型创建新的对象。被复制的实例就是“原型”,这个原型是可定制的。 使用场景 类初始化需要消化非常多的资源,这个资源包括数据、硬件资源等,通过原型拷贝避免这些消耗。 通过new产生的一个对象需要非常繁琐的数据准备或者权限,这时可以使用原型模式。

Joe.Ye Joe.Ye 2023-03-12
0 0 0
设计模式(3)Builder模式

设计模式(3)Builder模式

定义 将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。 使用场景 相同的方法,不同的执行顺序,产生不同的事件结果时。 多个部件或零件,都可以装配到一个对象中,但是产生的运行结果又不相同时。 产品类非常复杂,或者产品类中的调用顺序不同产生了不同的作用,这个使用建造者模

Joe.Ye Joe.Ye 2023-03-12
0 0 0
设计模式(2)单例模式

设计模式(2)单例模式

单例模式的作用是确保某个类只有一个实例,避免产生多个对象消耗过多的资源。比如对数据库的操作时,就可以使用单例模式。 单例实现 饿汉模式 这种写法是在类装载时就实例化instance,他避免了多线程的同步问题。但是不能保证有别的方式去装载,没有达到懒加载。 public class Singleto

Joe.Ye Joe.Ye 2023-03-12
0 0 0
设计模式(1)面向对象的六大原则

设计模式(1)面向对象的六大原则

单一职责原则(SRP) 简单的说就是:一个类中应该是一组相关性很高的函数、数据的封装。两个不一样的功能不应该放在一个类中。 这个原则没有具体的划分界限,需要根据个人经验,具体业务逻辑而定。这也是优化代码的第一步。试想一下,如果所有的功能写在一个类里,那么这个类会越来越大,越来越复杂,越不易修改维护

Joe.Ye Joe.Ye 2023-03-12
0 0 0
数据库结构导出工具DbSchema

数据库结构导出工具DbSchema

DbSchema提供了一个完整的和强大的数据库导出方案。用dbschema工具导出informix数据库的结构,dbschema可以导出整个库的结构也可以导出某个表的结构如: dbschema -d dbname -t tabname db.sql 就是导出tabname表的结构保存在db.sql这

Joe.Ye Joe.Ye 2023-03-12
0 0 0
无需绑定设备,下载Google Play上的某个apk文件

无需绑定设备,下载Google Play上的某个apk文件

访问:https://apps.evozi.com/apk-downloader/ 进入该网站后,输入Google Play上的apk所在详情页面地址,如:https://play.google.com/store/apps/details?id=com.google.android.googleq

Joe.Ye Joe.Ye 2023-03-09
0 0 0
curl 模拟GET与POST请求,以及上传文件

curl 模拟GET与POST请求,以及上传文件

curl GET 请求 curl http://localhost:8080/api/user/list curl http://localhost:8080/api/user/list -v -v表示查看详细的请求信息 curl POST 请求 可以使用-X POST申明请求方法,-d传送参数

Joe.Ye Joe.Ye 2023-03-05
0 0 0
VirtualBox采坑记录

VirtualBox采坑记录

Failed to open/create the internal network (1)问题描述 Failed to open/create the internal network 'HostInterfaceNetworking-VirtualBox Host-Only Ether

Joe.Ye Joe.Ye 2023-03-05
0 0 0
安装 Windows 10 报错无法打开所需文件install.wim的解决方法

安装 Windows 10 报错无法打开所需文件install.wim的解决方法

(1)下载原版镜像Windows 10 Version 1909,使用UltraISO制作U盘系统盘 (2)正常安装系统,到“安装程序正在启动界面”时弹出错误窗口,报错Windows无法打开所需的文件 D:\Source\install.wim。请确保安装所需的所有文件可用,并重新启动安装。 问题原

Joe.Ye Joe.Ye 2023-03-05
0 0 0
Hexo下Mathjax的转义问题

Hexo下Mathjax的转义问题

问题 我们平时使用markdown写文档的时候,免不了会碰到数学公式,好在有强大的Mathjax,可以解析网页上的数学公式,与hexo的结合也很简单,可以手动加入js,或者直接使用hexo-math插件。大部分情况下都是可以的,但是Markdwon本身的特殊符号与Latex中的符号会出现冲突的时候:

Joe.Ye Joe.Ye 2023-03-05
0 0 0
MathJax基础之极限符号

MathJax基础之极限符号

怎样在一行内写出一个像 \lim \limits_{x \to 1} \frac{x^2-1}{x-1} 一样的极限符号? 如果在一行内,\lim_{x \to 1},会渲染成\lim_{x \to 1},只有独立成一行时,这种写法才会渲染正常。 详细步骤: 用 \lim 开头,它会被渲染成

Joe.Ye Joe.Ye 2023-03-05
0 0 0
1 9 10 11 12 13 16