Object-Oriented Programming

Get Started. It's Free
or sign up with your email address
Rocket clouds
Object-Oriented Programming by Mind Map: Object-Oriented Programming

1. Core Concepts

1.1. Encapsulation

1.1.1. access modifiers

1.1.1.1. private

1.1.1.2. protected

1.1.1.3. public

1.1.1.4. no modifier

1.2. Polymorphism

1.2.1. final methods and fields

1.2.2. method overloading

1.2.3. method overriding (in class hierarchy )

1.3. Abstraction

1.3.1. abstract classes

1.3.2. interfaces

1.4. Inheritance

1.4.1. composition

1.4.2. aggregation

2. Benefits

2.1. high level of abstraction

2.2. good reusability

2.3. easy maintanance

2.4. good modularity

2.5. scalability

3. Good Practices

3.1. strong cohesion

3.2. loosely coupled

3.3. arrange class members

3.4. small classes

3.5. low level of complexity

3.6. setter validation

3.7. proper naming, self explained code

4. Principles

4.1. SOLID

4.1.1. Single Responsibility

4.1.2. Open/Closed

4.1.3. Liskov Substitution

4.1.4. Interface Segregation

4.1.5. Dependency Inversion

4.2. Inversion of Control

4.2.1. Dependency Injection

4.3. DRY

4.4. KISS

4.5. YAGNI

4.6. Separation of Concerns

5. Design Patterns

5.1. Structural Design Patterns

5.1.1. Adapter Pattern

5.1.2. Composite Pattern

5.1.3. Proxy Pattern

5.1.4. Flyweight Pattern

5.1.5. Facade Pattern

5.1.6. Bridge Pattern

5.1.7. Decorator Pattern

5.2. Creational Design Patterns

5.2.1. Singleton Pattern

5.2.2. Factory Pattern

5.2.3. Abstract Factory Pattern

5.2.4. Prototype Pattern

5.2.5. Builder Pattern

5.3. Behavioral Design Patterns

5.3.1. Template Method Pattern

5.3.2. Mediator Pattern

5.3.3. Chain of Responsibility Pattern

5.3.4. Observer Pattern

5.3.5. Strategy Pattern

5.3.6. Command Pattern

5.3.7. State Pattern

5.3.8. Visitor Pattern

5.3.9. Interpreter Pattern

5.3.10. Iterator Pattern

5.3.11. Memento Pattern