{"id":"reuse-mechanisms-ordered-with-principled-inheritance-boundary","text":"The three OO reuse mechanisms (inheritance, composition, parameterized types) form a principled decision hierarchy: composition is the validated default (convergently evolved, scalably grounded), parameterized types serve as a complementary compile-time alternative for binding-time-sensitive contexts, and inheritance is bounded to Template Method's principled form (fine-grained override control with five operation kinds) — creating a decision protocol where practitioners start with composition and deviate to inheritance only under Template Method's demonstrated structural constraints.","truth_value":"IN","source":"","source_url":"","source_hash":"","justifications":[{"type":"SL","antecedents":["three-reuse-mechanisms-composition-default","template-method-principled-inheritance-counterexample"],"outlist":[],"label":"The three reuse mechanisms are not mere alternatives but form an ordered hierarchy with composition as default and Template Method as the bounded exception"}],"dependents":["pluggable-adapter-recapitulates-reuse-spectrum"],"metadata":{"source_type":"derived","review_result":"invalid"},"created_at":"2026-06-18T01:23:05+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":"reuse-mechanisms-ordered-with-principled-inheritance-boundary","truth_value":"IN","reason":"SL justification valid","antecedents":["three-reuse-mechanisms-composition-default","template-method-principled-inheritance-counterexample"],"label":"The three reuse mechanisms are not mere alternatives but form an ordered hierarchy with composition as default and Template Method as the bounded exception"},{"node":"three-reuse-mechanisms-composition-default","truth_value":"IN","reason":"SL justification valid","antecedents":["parameterized-types-third-reuse-mechanism","composition-superiority-for-reuse"],"label":"Third reuse mechanism enriches the design space beyond the binary inheritance-vs-composition framing"},{"node":"parameterized-types-third-reuse-mechanism","truth_value":"IN","reason":"premise"},{"node":"composition-superiority-for-reuse","truth_value":"IN","reason":"SL justification valid","antecedents":["favor-composition-over-inheritance","inheritance-breaks-encapsulation","inheritance-compile-time-composition-run-time","delegation-composition-as-powerful-as-inheritance"],"label":"Four independent arguments converge on composition's superiority over inheritance"},{"node":"favor-composition-over-inheritance","truth_value":"IN","reason":"premise"},{"node":"inheritance-breaks-encapsulation","truth_value":"IN","reason":"premise"},{"node":"inheritance-compile-time-composition-run-time","truth_value":"IN","reason":"premise"},{"node":"delegation-composition-as-powerful-as-inheritance","truth_value":"IN","reason":"premise"},{"node":"template-method-principled-inheritance-counterexample","truth_value":"IN","reason":"SL justification valid","antecedents":["template-method-fine-grained-override-control","composition-superiority-for-reuse"],"label":"Template Method is the exception that proves the composition rule by showing when inheritance works"},{"node":"template-method-fine-grained-override-control","truth_value":"IN","reason":"SL justification valid","antecedents":["gof-template-method-five-operation-kinds","hook-operations-overridable-defaults","gof-cpp-template-method-nonvirtual"],"label":"Five operation kinds plus non-virtual skeleton produce the most controlled inheritance in the GoF"},{"node":"gof-template-method-five-operation-kinds","truth_value":"IN","reason":"premise"},{"node":"hook-operations-overridable-defaults","truth_value":"IN","reason":"premise"},{"node":"gof-cpp-template-method-nonvirtual","truth_value":"IN","reason":"premise"}]}}