{"id":"program-to-interface-not-implementation","text":"The GoF's first principle of reusable OO design is 'Program to an interface, not an implementation': declare variables in terms of abstract class interfaces, not concrete classes.","truth_value":"IN","source":"entries/2026/06/17/gof-oo-chunk-3.md","source_url":"","source_hash":"","justifications":[],"dependents":["abstract-coupling-enables-pattern-flexibility","dip-enables-ocp","gof-two-principles-ground-composition-paradigm-prerequisites","lsp-enables-abstraction-dependence"],"metadata":{"last_premise_reviewed":"2026-06-17T18:19:22","premise_review_result":"pass"},"created_at":"2026-06-17T17:04:08+00:00","updated_at":"2026-06-17T17:04:08+00:00","reviewed_at":"","verified_at":"","retracted_at":"","explanation":{"steps":[{"node":"program-to-interface-not-implementation","truth_value":"IN","reason":"premise"}]}}