{"id":"abstract-coupling-enables-pattern-flexibility","text":"Abstract coupling — maintaining references to abstract classes rather than concrete ones — is the shared mechanism underlying Observer's subject-observer decoupling, DIP's layer independence, and the GoF's program-to-interface principle; it is the atomic operation from which most OO flexibility derives.","truth_value":"OUT","source":"","source_url":"","source_hash":"","justifications":[{"type":"SL","antecedents":["abstract-coupling-definition","gof-observer-abstract-coupling-subject-observer","dip-depend-on-abstractions-not-concretions","program-to-interface-not-implementation"],"outlist":[],"label":"Abstract coupling is the recurring mechanism behind multiple OO principles and patterns"}],"dependents":["abstract-coupling-composition-dual-foundation","complete-decoupling-via-composition","interface-inheritance-enables-pattern-ecosystem"],"metadata":{"source_type":"derived","review_result":"pass"},"created_at":"2026-06-17T17:53:17+00:00","updated_at":"2026-06-17T20:39:50+00:00","reviewed_at":"2026-06-17T20:39:50+00:00","verified_at":"","retracted_at":"","explanation":{"steps":[{"node":"abstract-coupling-enables-pattern-flexibility","truth_value":"OUT","reason":"SL justification invalid","failed_antecedents":["abstract-coupling-definition"],"label":"Abstract coupling is the recurring mechanism behind multiple OO principles and patterns"}]}}