SOLID: Where Do Client-Owned Interfaces Live?
Description
A companion paper (https://zenodo.org/records/19633560) proves that ISP and DIP are equivalent at the
class level. This paper addresses the question that class-level equivalence leaves
open: where should the client-specific interfaces live in the package structure?
We formalize each of Martin’s principles — DIP, ISP, and the six packaging
principles (REP, CCP, CRP, ADP, SDP, SAP) — as constraints on a partition and
prove that CCP and REP are jointly unsatisfiable for any multi-client provider
configuration: CCP requires each interface to be co-located with its client, while
REP requires each interface to be independently releasable. No partition satis-
fies both. The result extends to all three vertices of Martin’s tension triangle:
dropping REP or CRP still yields zero solutions; only dropping CCP produces
any. Martin’s framework provides no meta-criterion for selecting among the
survivors.
Files
loth2026-ispisdippackaging.pdf
Files
(395.9 kB)
| Name | Size | Download all |
|---|---|---|
|
md5:0f03ac0cf7cd126183dadf0e522b7f60
|
395.9 kB | Preview Download |
Additional details
Additional titles
- Subtitle (English)
- DIP, ISP, and the Packaging Principles