Skip to content
Object-Oriented Programming (OOP) Complete Guide logo

Object-Oriented Programming (OOP) Complete Guide

[日本語版](../../ja/02-programming/object-oriented-programming/SKILL.md)

Gaku52/claude-code-skills0installs6stars

SKILL.md

Full skill instructions

日本語版

Object-Oriented Programming (OOP) Complete Guide

A comprehensive guide to understanding and effectively applying object-oriented programming. Covers the four pillars, SOLID principles, design patterns, and anti-patterns with MIT-level quality.

Target Audience

  • Engineers who want to systematically learn OOP from fundamentals to advanced topics
  • Developers seeking practical understanding of SOLID principles and design patterns
  • Anyone looking to sharpen their judgment on "inheritance vs composition" and "when to use OOP"

Prerequisites

  • Programming basics (variables, functions, control flow)
  • Experience with at least one programming language

Guide Index

00-introduction (Introduction)

FileTopicSummary
00-what-is-oop.mdWhat is OOPThe essence of object-oriented thinking, mental models, and how it fits among other paradigms
01-history-and-evolution.mdHistory and Evolution of OOPEvolution from Simula to Smalltalk to C++ to Java to modern languages
02-oop-vs-other-paradigms.mdOOP vs Other ParadigmsComparison with procedural, functional, and reactive paradigms; when to use each
03-class-and-object.mdClasses and ObjectsInternal structure of classes, memory layout, constructors, static members

01-four-pillars (The Four Pillars)

FileTopicSummary
00-encapsulation.mdEncapsulationInformation hiding, access modifiers, immutable objects, the getter/​setter debate
01-inheritance.mdInheritanceSingle/​multiple inheritance, the diamond problem, abstract classes, pitfalls of inheritance
02-polymorphism.mdPolymorphismSubtype, parametric, and ad-hoc polymorphism; dynamic dispatch; virtual function tables
03-abstraction.mdAbstractionInterface design, abstract classes vs interfaces, leaky abstractions

02-design-principles (Design Principles)

FileTopicSummary
00-solid-overview.mdSOLID Principles OverviewThe big picture of all five principles, why SOLID matters, criteria for applying them
01-srp-and-ocp.mdSRP + OCPSingle Responsibility Principle, Open/​Closed Principle, practical examples
02-lsp-and-isp.mdLSP + ISPLiskov Substitution Principle, Interface Segregation Principle
03-dip.mdDIPDependency Inversion Principle, Dependency Injection (DI), IoC Containers

03-advanced-concepts (Advanced Concepts)

FileTopicSummary
00-composition-vs-inheritance.mdComposition vs InheritanceWhy "favor composition over inheritance," practical decision criteria
01-interfaces-and-traits.mdInterfaces and TraitsImplementations in Java/​TypeScript/​Rust/​Go, duck typing
02-mixins-and-multiple-inheritance.mdMixins and Multiple InheritancePython MRO, Ruby modules, TypeScript Mixins
03-generics-in-oop.mdGenerics in OOPType parameters, covariance/​contravariance, type erasure vs monomorphization

04-practical-patterns (Practical Patterns)

FileTopicSummary
00-creational-patterns.mdCreational PatternsFactory, Builder, Singleton, Prototype
01-structural-patterns.mdStructural PatternsAdapter, Decorator, Facade, Proxy, Composite
02-behavioral-patterns.mdBehavioral PatternsStrategy, Observer, Command, State, Iterator
03-anti-patterns.mdAnti-PatternsGod Object, deep inheritance hierarchies, Anemic Domain Model

Learning Path

Fundamentals:  00-introduction -> 01-four-pillars
Principles:    02-design-principles (SOLID)
Applied:       03-advanced-concepts -> 04-practical-patterns

Related Skills