拦截、代理与代码设计最佳实践
在软件开发中,拦截与代理技术以及代码设计的最佳实践是非常重要的方面。下面将详细探讨拦截和代理的陷阱、对象的可见性等内容。
拦截和代理的陷阱
- 代理生成位置
- 通常代理会在同一包内生成,但这并非绝对,具体取决于所使用的库的决策。大多数依赖注入器会将代理放在与父类相同的包中。
- 无法重写 final 方法
- 方法被声明为
final是为了防止子类重写。例如:
- 方法被声明为
public class FrenchChef {
public final void cook() {
...
}
void clean() {
...
}
}
- 若子类尝试重写 `final` 方法,会导致编译错误:
public class FrenchSousChef extends FrenchChef {
@Override
public void cook() {
...
}
}
- 解决方案:
- 移除 `final` 修饰符。
- 若无法
超级会员免费看
订阅专栏 解锁全文
1219

被折叠的 条评论
为什么被折叠?



