19
How To Learn OOP: A Practical Guide

How To Learn OOP: A Practical Guide · S Single Responsibility Principle O Open/closed Principle L Liskov Substitution Principle I Interface Segregation Principle D Dependency Inversion

  • Upload
    others

  • View
    7

  • Download
    0

Embed Size (px)

Citation preview

Page 1: How To Learn OOP: A Practical Guide · S Single Responsibility Principle O Open/closed Principle L Liskov Substitution Principle I Interface Segregation Principle D Dependency Inversion

How To Learn OOP: A Practical Guide

Page 2: How To Learn OOP: A Practical Guide · S Single Responsibility Principle O Open/closed Principle L Liskov Substitution Principle I Interface Segregation Principle D Dependency Inversion

Why Learn OOP?

• Fits a perspective of the world and problem well (for data centric processes)

• Abstraction helps understanding and maintenance of large code bases.

• Organises your code

Page 3: How To Learn OOP: A Practical Guide · S Single Responsibility Principle O Open/closed Principle L Liskov Substitution Principle I Interface Segregation Principle D Dependency Inversion

Critics of OOP

• Unnecessary Abstraction

• Design Patterns Gone Wild

• Poor IDE Performance

Page 4: How To Learn OOP: A Practical Guide · S Single Responsibility Principle O Open/closed Principle L Liskov Substitution Principle I Interface Segregation Principle D Dependency Inversion
Page 5: How To Learn OOP: A Practical Guide · S Single Responsibility Principle O Open/closed Principle L Liskov Substitution Principle I Interface Segregation Principle D Dependency Inversion

Single Responsibility PrincipleS

Open/closed PrincipleO

Liskov Substitution PrincipleL

Interface Segregation PrincipleI

Dependency Inversion PrincipleD

Page 6: How To Learn OOP: A Practical Guide · S Single Responsibility Principle O Open/closed Principle L Liskov Substitution Principle I Interface Segregation Principle D Dependency Inversion

Psst…It’s all about coupling and

cohesion

Page 7: How To Learn OOP: A Practical Guide · S Single Responsibility Principle O Open/closed Principle L Liskov Substitution Principle I Interface Segregation Principle D Dependency Inversion

Step 1: Make Classes

• Learn the basics of creating classes.

• Replace clusters/FGVs

Page 8: How To Learn OOP: A Practical Guide · S Single Responsibility Principle O Open/closed Principle L Liskov Substitution Principle I Interface Segregation Principle D Dependency Inversion

Step 2: Practice!

Single Responsibility PrincipleS

Open/closed PrincipleO

Liskov Substitution PrincipleL

Interface Segregation PrincipleI

Dependency Inversion PrincipleD

Don’t Worry – Not Yet!

Don’t Worry – Not Yet!

Page 9: How To Learn OOP: A Practical Guide · S Single Responsibility Principle O Open/closed Principle L Liskov Substitution Principle I Interface Segregation Principle D Dependency Inversion

S/I Examples

Pressure Meter-------------------------- VISAReference- Alarm Level-------------------------• Read Pressure• Evaluate Alarm Level• Read Alarm Message

Page 10: How To Learn OOP: A Practical Guide · S Single Responsibility Principle O Open/closed Principle L Liskov Substitution Principle I Interface Segregation Principle D Dependency Inversion

S/I Examples

Pressure Meter-------------------------- VISAReference-------------------------• Read Pressure

Pressure Alarm-------------------------- Alarm Level-------------------------• Evaluate Alarm Level (Level)• Read Alarm Message

Page 11: How To Learn OOP: A Practical Guide · S Single Responsibility Principle O Open/closed Principle L Liskov Substitution Principle I Interface Segregation Principle D Dependency Inversion

S/I Examples

Match-------------------------- Home Team- Away Team- Home Tries- Away Tries- Home Conversions- Away Conversions- Home Penalties- Away Penalties-------------------------• Play Match• Read Result

Page 12: How To Learn OOP: A Practical Guide · S Single Responsibility Principle O Open/closed Principle L Liskov Substitution Principle I Interface Segregation Principle D Dependency Inversion

S/I Examples

Match-------------------------- Home Team- Away Team- Result-------------------------• Play Match• Read Result

Result-------------------------- Home Team?- Away Team?- Home Tries- Away Tries- Home Converted Tries- Away Converted Tries- Home Penalties- Away Penalties-------------------------• Read Result

Page 13: How To Learn OOP: A Practical Guide · S Single Responsibility Principle O Open/closed Principle L Liskov Substitution Principle I Interface Segregation Principle D Dependency Inversion

S/I Examples

DAQ Card-------------------------- Input Task- Output Task-------------------------• Read Input• Write Output

Page 14: How To Learn OOP: A Practical Guide · S Single Responsibility Principle O Open/closed Principle L Liskov Substitution Principle I Interface Segregation Principle D Dependency Inversion

S/I Examples

Analog Input-------------------------- Input Task-------------------------• Read Input

Analog Output-------------------------- Output Task-------------------------• Write Output

Page 15: How To Learn OOP: A Practical Guide · S Single Responsibility Principle O Open/closed Principle L Liskov Substitution Principle I Interface Segregation Principle D Dependency Inversion

Step 3: Learn Inheritance

Page 16: How To Learn OOP: A Practical Guide · S Single Responsibility Principle O Open/closed Principle L Liskov Substitution Principle I Interface Segregation Principle D Dependency Inversion

Step 4: Practice!

Single Responsibility PrincipleS

Open/closed PrincipleO

Liskov Substitution PrincipleL

Interface Segregation PrincipleI

Dependency Inversion PrincipleD

Don’t Worry – Not Yet!

Don’t Worry – Not Yet!

Page 17: How To Learn OOP: A Practical Guide · S Single Responsibility Principle O Open/closed Principle L Liskov Substitution Principle I Interface Segregation Principle D Dependency Inversion

Leaky Abstractions

Page 18: How To Learn OOP: A Practical Guide · S Single Responsibility Principle O Open/closed Principle L Liskov Substitution Principle I Interface Segregation Principle D Dependency Inversion

Step 5: Complete SOLID

Single Responsibility PrincipleS

Open/closed PrincipleO

Liskov Substitution PrincipleL

Interface Segregation PrincipleI

Dependency Inversion PrincipleD

Page 19: How To Learn OOP: A Practical Guide · S Single Responsibility Principle O Open/closed Principle L Liskov Substitution Principle I Interface Segregation Principle D Dependency Inversion

Step 6: Design Patterns