选择继承或接口来实现Java中的设计模式?

Sum*_*Tea 2 java design-patterns

我只是想在我的Java代码中注入一些设计模式,但我不知道使用哪种样式 - 是继承还是接口首选?为什么?

Jim*_*ley 9

设计模式不是随机注入您的应用程序的东西.它们是设计时的各种东西,而不是在你的代码已经烘焙后撒在你的代码上的帕玛森奶酪.

也就是说,Josh Bloch的开创性Effective Java强烈鼓励开发人员使用接口来实现共享行为,而不是使用继承.这符合我自己的经验.

ETA:除其他原因外,如果您正在实现一个接口,您可以轻松地创建该接口的模拟以用于测试,而不必担心继承层次结构的其余部分.


Chi*_*hii 5

设计模式不会"注入"您的代码 - 您首先需要注意的是,您的问题类似于许多其他人解决的问题,并且他们已经提炼出一种解决问题的模式.最着名的就是这里

另外,对于是否要使用继承(又称扩展)或接口依赖.通常界面和组合效果更好.