1 changed files with 16 additions and 0 deletions
@ -0,0 +1,16 @@ |
|||||
|
- 多个策略同时匹配同一 URL,工厂遍历顺序的影响及解决方案: |
||||
|
|
||||
|
- 影响 :遍历顺序决定返回哪个策略,可能导致非预期策略被选中 |
||||
|
- 解决方案 :引入优先级机制,选择优先级最高的匹配策略 |
||||
|
- Repository 比直接用 List 好在哪?为什么多封装一层? |
||||
|
|
||||
|
- 优势 :封装数据访问逻辑,提供统一接口,便于维护和测试;可在不影响调用者的情况下修改内部实现;支持事务管理和数据验证 |
||||
|
- 封装原因 :遵循单一职责原则,将数据访问与业务逻辑分离,提高代码可维护性和可扩展性 |
||||
|
- 网站变多后,工厂逐个注册的缺点是什么?有什么优化方案? |
||||
|
|
||||
|
- 缺点 :每次添加新网站需修改工厂代码,违反开闭原则;注册逻辑分散不易管理;启动时加载所有策略可能影响性能 |
||||
|
- 优化方案 :使用 SPI 自动发现策略实现;使用注解扫描自动注册;将策略配置外部化 |
||||
|
- Collections.unmodifiableList() 原理是什么?原 List 变化后只读视图会变吗? |
||||
|
|
||||
|
- 原理 :返回一个包装类,其修改方法(add、remove、clear 等)抛出 UnsupportedOperationException |
||||
|
- 变化情况 :会变。unmodifiableList 返回的是原 List 的视图而非副本,原 List 变化会反映到视图中 |
||||
Loading…
Reference in new issue