我刚刚阅读了Effective Java的第93-4页,但我遇到了一个混合术语.但我发现很难想象出mixin究竟是什么.有没有人可以通过提供Java中的Mixin示例来帮助我.感谢您的帮助,因为我搜索了Stackoverfolw和互联网,但没有发现任何确切的结论.
我首先考虑使用ITD来定义private static final Logger logger = ...一些不相关的案例,但它看起来不像使用它作为演示示例的明显改进.
是否有一些标准/建议的ITD使用示例,人们应该将其用于教学目的?
我一直在研究的Java项目与几个RDBMS集成在一起.我们在处理它们的方式之间减少代码重复的最明显方法是创建类型层次结构,如:
ThirdPartySoftware (superclass)
/|\
/ | \
TPS1 2 3
Run Code Online (Sandbox Code Playgroud)
然而,这种方法最终导致TPS1,TPS2和TPS3的实现非常相似(但并不完全!).如果没有超类基本上意识到某些东西可能会有所不同,那么很难将所有功能都引入超类中,打败封装子类就意味着要购买我们.
我们考虑过的一种方法是通过它们共享的功能来表示数据库,例如"支持功能X"和"不能执行功能Y",但是并不完全清楚代码最终会以这种方式更易于维护,因为:
有没有人有其他建议我们可以减少子类之间的代码重复,也许使用设计模式?