{"id":"adapter-facade-implements-dip-at-boundaries","text":"Adapter and Facade, as complementary interface-boundary patterns operating at different scales (one-to-one post-design vs. many-to-one by design), establish abstraction boundaries that can align with the Dependency Inversion Principle. To the extent that higher-level modules depend on the abstractions these patterns provide rather than on concretions, this alignment supports the conditions that DIP requires — and since DIP is a prerequisite for OCP, these patterns may indirectly facilitate systems that are open for extension without modification.","truth_value":"IN","source":"","source_url":"","source_hash":"","justifications":[{"type":"SL","antecedents":["adapter-facade-interface-boundary-pair","dip-enables-ocp"],"outlist":[],"label":"Boundary patterns are the concrete mechanism by which DIP's abstraction requirement is fulfilled at system interfaces"}],"dependents":["boundary-extension-coverage-robust","coupling-management-covers-boundary-and-behavioral","facade-implements-asymmetric-dip","structural-complete-flexibility","structural-dip-boundary-completeness"],"metadata":{"source_type":"derived","review_result":"invalid","repair_action":"softened"},"created_at":"2026-06-17T17:57:39+00:00","updated_at":"2026-06-18T06:34:42+00:00","reviewed_at":"2026-06-18T06:15:08+00:00","verified_at":"","retracted_at":"","explanation":{"steps":[{"node":"adapter-facade-implements-dip-at-boundaries","truth_value":"IN","reason":"SL justification valid","antecedents":["adapter-facade-interface-boundary-pair","dip-enables-ocp"],"label":"Boundary patterns are the concrete mechanism by which DIP's abstraction requirement is fulfilled at system interfaces"},{"node":"adapter-facade-interface-boundary-pair","truth_value":"IN","reason":"SL justification valid","antecedents":["facade-vs-adapter-new-vs-existing-interface","adapter-after-design-bridge-before-design","facade-defines-higher-level-interface-to-subsystem"],"label":"Two structural patterns addressing interface boundaries at complementary granularities"},{"node":"facade-vs-adapter-new-vs-existing-interface","truth_value":"IN","reason":"premise"},{"node":"adapter-after-design-bridge-before-design","truth_value":"IN","reason":"premise"},{"node":"facade-defines-higher-level-interface-to-subsystem","truth_value":"IN","reason":"premise"},{"node":"dip-enables-ocp","truth_value":"IN","reason":"SL justification valid","antecedents":["dip-depend-on-abstractions-not-concretions","ocp-open-for-extension-closed-for-modification","program-to-interface-not-implementation"],"label":"Abstraction-dependency is the mechanism enabling extension-without-modification"},{"node":"dip-depend-on-abstractions-not-concretions","truth_value":"IN","reason":"premise"},{"node":"ocp-open-for-extension-closed-for-modification","truth_value":"IN","reason":"premise"},{"node":"program-to-interface-not-implementation","truth_value":"IN","reason":"premise"}]}}