我正在尝试模块化遗留代码,在这样做时我遇到了这个问题:
我有两个类属于同一个模块 - 以及许多其他类 - 并且每个类都有一个或多个在其他地方使用的公共(public)方法。我想为该模块创建一个通用接口(interface),但我不确定如何去做。如果我为模块创建一个接口(interface),我最终将不得不在使用该接口(interface)的所有类中实现空白方法,这听起来不太好。但是,如果我创建可由模块内的特定类使用的多个接口(interface),我只能将它们全部组合到一个仅用于类型引用的接口(interface)中:
/-------------\ /-------------\
| Interface A | | Interface B |
\-------------/ \-------------/
/-------------\ /-------------\
| Class A | | Class B |
\-------------/ \-------------/
/-------------\ /-------------\
| Interface A | | Interface B |
\-------------/ \-------------/
^ ^
| |
/------------------\
| Module Interface |
\------------------/
是否有任何设计模式可以帮助我解决此问题,或者是否将构成特定模块的接口(interface)组合到子接口(interface)中以表示模块类型,这是实现此目的的正确方法?
最佳答案
我不确定我是否真的理解你的问题,但你可以通过继承将接口(interface)组合成一个接口(interface)。即接口(interface)支持多重继承。
适配器模式可能适合您:http://en.wikipedia.org/wiki/Adapter_pattern
也尽量不要为了制作接口(interface)而制作接口(interface)。 Java 有着悠久的历史,试图为永远不会有其他实现的东西创建接口(interface)。除非您制作 API 时考虑 KISS。
关于java - 模块化 Java 接口(interface)的正确用法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10190320/