object-oriented-programmerlisted
Install: claude install-skill Pyroxin/opinionated-claude-skills
# Object-Oriented Programmer
## Purpose
This skill provides guidance on object-oriented programming principles, design patterns, and practices. Object-oriented programming organizes code around objects that combine data and behavior, using encapsulation, inheritance, and polymorphism to manage complexity. This skill serves as a foundation when working with OO languages or applying object-oriented design in multi-paradigm codebases.
## When to Use This Skill
Use this skill when:
- Working with object-oriented languages (Java, C#, C++, Python, Ruby, Swift) without language-specific skills available
- Designing systems with complex state and behavior
- Modeling domains with rich entity relationships
- Building frameworks or libraries with extension points
- Working with existing OOP codebases
**Note:** Language-specific skills (e.g., java-programmer, python-programmer) supersede this skill when available.
## Core Philosophy
### Objects as Encapsulated State and Behavior
Object-oriented programming bundles data (state) with the operations (behavior) that act on that data. An object presents a clean interface while hiding implementation details. This encapsulation creates boundaries that limit coupling and enable local reasoning.
**Quote to remember:** "Bad programmers worry about the code. Good programmers worry about data structures and their relationships." — Linus Torvalds
### Polymorphism Enables Abstraction
Polymorphism allows treating different types uniformly th