At work we have a project where we're pushing pieces of the monolith into modules. (A java project making smaller maven modules that we pull in via maven dependencies). The pattern we're using pushes each module into a 'pair' - with a module for the interface, and a module for the implementation.
The thought occurs that this pattern might have a name that better captures its reasoning. Whilst OO languages use this pattern for polymorphism, it seems like it might serve a slightly different purpose in this usage.
They hint at this pattern here:
You can also see in the following images that the sub-module package structure has been arranged on layer and type boundaries in that each module has its own model, repository (which contains interface definitions only) services and controller packages and that the layout of each module is identical at the top level.
My question is: What is the name of the interface-implementation pattern applied to modularisation?