
设计模式之美
文章平均质量分 70
极客时间-设计模式之美学习笔记
疯狂java杰尼龟
路漫漫其修远兮,吾将上下而求索
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
程序报错该返回什么?
返回NULL值实例 返回空字符串或空集合实例 Redis地址格式错误时,希望程序终止 抛出方式 1、直接吞掉。具体的代码示例如下所示: 2、原封不动地 re-throw。具体的代码示例如下所示: 3、包装成新的异常 re-throw。具体的代码示例如下所示: 如果 func1() 抛出的异常是可以恢复,且 func2() 的调用方并不关心此异常,我们完全可以在 func2() 内将 func1() 抛出的异常吞掉; 如果 func1() 抛出的异常对 func2() 的调用方来说,也是可以理解原创 2022-06-28 14:45:54 · 694 阅读 · 0 评论 -
ID生成器代码重构问题(下)
第一轮:提升代码可读性 第二轮:提升代码可测试性 第三轮:添加单元测试 第四轮:添加注释 原链接:35 | 实战一(下):手把手带你将ID生成器代码从“能用”重构为“好用”原创 2022-06-27 11:26:34 · 385 阅读 · 0 评论 -
ID生成器代码重构问题(上)
背景: 为每个i请求生成一个ID 即ID生成器:本机名的最后一个字段+当前时间戳精确到毫秒+8位随机字符串 通用方面 1.IdGenerator设计成了实现类,违反基于接口而非实现编程的设计思想,如果我们需要设计两个ID生成器算法就需要将IdGenerator改为接口并为不同的算法实现不同的实现类。 2.静态方法generate()测试难度更大。 3.没有编写单元测试代码 4.代码完全没有注释,不易理解,尤其是随机字符串部分 业务方面 1.没有涉及共享变量,所以代码线程安全。 2.接口只有generate原创 2022-06-24 15:24:51 · 328 阅读 · 0 评论