适配器模式 Adapter Pattern
2020-03-04
假设现有一个旧接口,客户端希望使用一种新接口的形式调用它,此时可以利用适配器模式,将旧接口以新接口的形式进行封装。不过如果适配器使用过多,则…
使用 Rclone 挂载网盘
2020-02-01
在没有图形界面的服务器上,或不想使用客户端软件时,如何方便地使用网盘是个问题。 Rclone 就是为此而生的,它可以方便在命令行下挂载网盘,目前已经支持包…
生成器模式 Builder Pattern
2020-01-29
在设计类时,如果包含或将来可能会包含很多属性,就要重载很多构造方法,不仅设计参数麻烦,调用也比较混乱。 为此可以使用 getter、setter…
策略模式 Strategy Pattern
2020-01-27
在软件开发中,某一功能可以有多种实现,如果把这些实现都放在一个类中,则不利于增加、修改和替换,此时可以把可能频繁变化的逻辑抽象出来,Runn…
移植 Samba 到 iOS 平台
2019-09-08
前言 iOS 越狱后可以像树莓派那样作为迷你服务器,在上面搭建 aria2、Transmission 等。但是 Cydia 上的 Samba 非常古老,而且只能在 32 位 CPU 上运行。…
交叉编译 Go 语言项目 frp for iOS
2019-09-03
首先安装 Go 语言环境,然后下载 frp 源码: git clone git@github.com:fatedier/frp.git cd frp Go 的交叉编译比 GCC、Clang 方便很多,只需要设置几个参数: CC=$GOPATH/misc/ios/clangwrap.sh CGO_ENABLED=1 GOOS=darwin GOARCH=arm64 go build -o ./frpc-darwin-arm64 ./cmd/frpc CC=$GOPATH/misc/ios/clangwrap.sh CGO_ENABLED=1 GOOS=darwin GOARCH=arm64 go build -o…
将正整数表示为若干平方数之和 Perfect Squares
2019-05-08
https://leetcode.com/problems/perfect-squares/ Given a positive integer n, find the least number of perfect square numbers (for example, 1, 4, 9, 16, …) which sum to n. Example 1: Input: n = 12 Output: 3 Explanation: 12 = 4 + 4 + 4. Example 2: Input: n = 13 Output: 2 Explanation: 13 = 4 + 9. 动态规划 $$ f(i) = \min\{f(i - s)\} + 1, 其中 s…
Java 集合框架
2019-04-17
Collection Collection 接口基本可分为三种,List、Set 和 Queue。这些接口有对应实现的抽象类,实体类只需要继承抽象类即可,免去不必要的重复编码。 为什么实…