Published April 18, 2026 | Version v1

SOLID: Where Do Client-Owned Interfaces Live?

  • 1. Independent Researcher

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