该实战用到了:开闭原则 + 依赖倒置原则 + 策略模式 + 工厂模式
❓问题:既然用接口去支付,那么如何知道用户使用支付宝或者微信支付呢,从哪里来判断?
这个问题问得非常好!你已经触碰到了“依赖倒置 + 策略模式 + 工厂模式”结合使用的核心。
✅ 接口是为了代码解耦,但支付方式还是要根据用户选择动态决定的。
该实战用到了:开闭原则 + 依赖倒置原则 + 策略模式 + 工厂模式
这个问题问得非常好!你已经触碰到了“依赖倒置 + 策略模式 + 工厂模式”结合使用的核心。
✅ 接口是为了代码解耦,但支付方式还是要根据用户选择动态决定的。
该实战用到了:开闭原则 + 依赖倒置原则 + 策略模式 + 工厂模式
这个问题问得非常好!你已经触碰到了“依赖倒置 + 策略模式 + 工厂模式”结合使用的核心。
✅ 接口是为了代码解耦,但支付方式还是要根据用户选择动态决定的。
设计原则就像是 写好代码的“潜规则”或“习惯”,是你写程序时脑子里要时刻记住的准则。
这些原则不是强制的,但如果你违背它,代码可能会:
很难扩展
一改就崩
到处耦合(缠在一起)
谁也看不懂
设计原则就像是 写好代码的“潜规则”或“习惯”,是你写程序时脑子里要时刻记住的准则。
这些原则不是强制的,但如果你违背它,代码可能会:
很难扩展
一改就崩
到处耦合(缠在一起)
谁也看不懂
比如本次更新为7.3.0
在其他目录重新初始化hexo项目
1 | $ npm install hexo@latest |
查看test目录里面的package.json,比较里面的依赖版本,有没有大版本升级(比如从0.0.1升级到了2.0.0)就需要在老项目改一下前版本号
Java 语言,跨平台的(write once,run anywhere)
Java 虚拟机:跨语言的平台
Java 虚拟机不和包括 Java 在内的任何语言绑定,它只与”Class 文件”这种特定的二进制文件格式所关联。无论使用何种语言进行软件开发, 只要能将源文件编译为正确的 Class 文件,那么这种语言就可以在 Java 虚拟机上执行,可以说,统一而强大的 Class 文件结构,就是 Java 虚拟机的基石、桥梁。
通过阅读GC日志,我们可以了解Java虚拟机内存分配与回收策略。
内存分配与垃圾回收的参数列表
-XX:+PrintGC :输出GC日志。类似:-verbose:gc-XX:+PrintGCDetails :输出GC的详细日志-XX:+PrintGCTimestamps :输出GC的时间戳(以基准时间的形式)-XX:+PrintGCDatestamps :输出GC的时间戳(以日期的形式,如2013-05-04T21: 53: 59.234 +0800)-XX:+PrintHeapAtGC :在进行GC的前后打印出堆的信息-Xloggc:…/logs/gc.log :日志文件的输出路径截止JDK1.8,一共有7款不同的垃圾收集器。每一款的垃圾收集器都有不同的特点,在具体使用的时候,需要根据具体的情况选用不同的垃圾收集器。
| 垃圾收集器 | 分类 | 作用位置 | 使用算法 | 特点 | 适用场景 |
|---|---|---|---|---|---|
| Serial | 串行运行 | 作用于新生代 | 复制算法 | 响应速度优先 | 适用于单CPU环境下的client模式 |
| ParNew | 并行运行 | 作用于新生代 | 复制算法 | 响应速度优先 | 多CPU环境Server模式下与CMS配合使用 |
| Parallel | 并行运行 | 作用于新生代 | 复制算法 | 吞吐晕优先 | 适用于后台运算而不需要太多交互的场景 |
| Serial Old | 串行运行 | 作用于老年代 | 标记-压缩算法 | 响应速度优先 | 适用于单CPU环境下的Client模式 |
| Parallel old | 并行运行 | 作用于老年代 | 标记-压缩算法 | 吞吐量优先 | 适用于后台运算而不需要太多交互的场景 |
| CMS | 并发运行 | 作用于老年代 | 标记-清除算法 | 响应速度优先 | 适用于互联网或B/S业务 |
| G1 | 并发、并行 | 作用于新生代、老年代 | 标记-压缩算法、复制算法 | 响应速度优先 | 面向服务端应用 |