I:
public interface IInterface
module-info.java:
exports Moudle_I_Path
A:
public class AImpl implements IInterface
module-info.java:
requires Moudle_I_Path
provides Moudle_I_Path.IInterface with Moudle_A_Path.AImpl;
B:
public class BImpl implements IInterface
module-info.java:
requires Moudle_I_Path
provides Moudle_I_Path.IInterface with Moudle_B_Path.BImpl;
Main:
Iterable<IInterface> impls= ServiceLoader.load(IInterface.class);
for (IInterface impl:impls) {
//插件式管理
}
module-info.java:
uses Moudle_I_Path.IInterface
Moudle_Main的impl文件中加入Moudle_A和Moudle_B的orderEntry