Skip to content

Latest commit

 

History

History
91 lines (49 loc) · 3.13 KB

README.md

File metadata and controls

91 lines (49 loc) · 3.13 KB

Introduction to Software Design, Object Oriented Programming and Design Patterns

-> Software Design -> OOP -> Design Patterns

What is software design?

What is Object Oriented Programming?

(Visually)

  • Everything is a class
  • Everytime assigns values (attributes) to a class to create an object
  • When creating / reading (heavily) / updating / deleting external sources, we will invoke the functions (behaviours) of the object

Purpose of software design.

What do we expect from Object Oriented Programming?

-> A new requirement comes > change little / no change of system

-> The change of requirement is proportional to the amount of change of the system

-> Facitiliate to add new codes instead of modifying the existing codes as much as possible

Four Pillars of OOP

  • Abstraction
  • Encapsulation
  • Inheritance
  • Polymorphism

Five Priniciples of Good OOP (SOLID)

  • Single-responsiblity Principle
  • Open-closed Principle
  • Liskov Substitution Principle
  • Interface Segregation Principle
  • Dependency Inversion Principle

Design Patterns

Reference