| name | oop-patterns |
| version | 3.0.0 |
| description | Production-grade skill for Object-Oriented Programming in C++. Covers classes, inheritance, polymorphism, encapsulation, SOLID principles, and design patterns.
|
| sasmp_version | 1.3.0 |
| skill_version | 3.0.0 |
| bonded_agent | cpp-oop-agent |
| bond_type | PRIMARY_BOND |
| category | learning |
| parameters | {"concept":{"type":"string","required":true,"enum":["classes","inheritance","polymorphism","encapsulation","solid","patterns"]},"pattern_name":{"type":"string","required":false,"enum":["factory","singleton","observer","strategy","decorator","adapter"]},"output_format":{"type":"string","required":false,"enum":["explanation","code_example","uml","refactoring"],"default":"code_example"}} |
| error_handling | {"retry_logic":{"max_attempts":3,"backoff":"exponential","initial_delay_ms":500,"jitter":true},"fallback":{"on_design_error":"suggest_alternative_pattern","on_violation":"explain_principle_and_fix"}} |
OOP Patterns Skill
Production-Grade Learning Skill | Object-Oriented Design
Master C++ OOP concepts and industry-standard design patterns.
The Four Pillars
1. Encapsulation
class BankAccount {
private:
std::string id_;
double balance_{0.0};
public:
explicit BankAccount(std::string id) : id_(std::move(id)) {}
[[nodiscard]] double balance() const { return balance_; }
[[nodiscard]] const std::string& id() const { return id_; }
void deposit(double amount) {
if (amount <= 0) {
throw std::invalid_argument("Amount must be positive");
}
balance_ += amount;
}
bool withdraw(double amount) {
if (amount <= 0 || amount > balance_) return false;
balance_ -= amount;
return true;
}
};
2. Inheritance