{"id":"pattern-roles-and-type-interface-separation-ground-abstract-coupling","text":"The GoF's distinction between type (interface) and class (implementation) — objects of different classes can share a type — combined with the principle that pattern participants are named roles rather than classes, jointly ground abstract coupling: patterns achieve flexibility precisely because their participants are defined by the roles they play (interfaces/types), not the classes that implement them, making concrete class identity irrelevant to pattern structure.","truth_value":"IN","source":"","source_url":"","source_hash":"","justifications":[{"type":"SL","antecedents":["gof-type-is-interface-class-is-implementation","pattern-participants-are-roles-not-classes"],"outlist":[],"label":"Type/class separation and roles-not-classes together explain why patterns achieve abstract coupling"}],"dependents":[],"metadata":{"source_type":"derived","review_result":"pass"},"created_at":"2026-06-18T01:48:11+00:00","updated_at":"2026-06-18T06:15:08+00:00","reviewed_at":"2026-06-18T06:15:08+00:00","verified_at":"","retracted_at":"","explanation":{"steps":[{"node":"pattern-roles-and-type-interface-separation-ground-abstract-coupling","truth_value":"IN","reason":"SL justification valid","antecedents":["gof-type-is-interface-class-is-implementation","pattern-participants-are-roles-not-classes"],"label":"Type/class separation and roles-not-classes together explain why patterns achieve abstract coupling"},{"node":"gof-type-is-interface-class-is-implementation","truth_value":"IN","reason":"premise"},{"node":"pattern-participants-are-roles-not-classes","truth_value":"IN","reason":"premise"}]}}