DESIGN KNOWLEDGE

Knowledge Repository

Day 1

  • Programming Paradigm
  • SOLID Principles
  • SRP

Day 2

  • DRY (Can be done using Complete Code Reuse)
    DRY

  • Substitution

  • Inteface Segregation

    • Inheritance- IS A
      • Static relationship/ compile time (Hence should be created only if necessary)
    • uses (HAS A)
      • Association
      • Composition
      • Aggregation
        MicrosoftTeams-image (6) MicrosoftTeams-image (3)
  • Dependency

    • Inversion principle (loosely coupled)
    • Injection
      • Container
        MicrosoftTeams-image (2)

Day 3

  • DRY
  • OCP
    • Strategy pattern
    • Composite Strategy pattern MicrosoftTeams-image (8) MicrosoftTeams-image (9) MicrosoftTeams-image (10)

Day 4

  • Decorator Pattern
    • Dynamic Composition of object functionality
    • Use this pattern if you need to add functionality at runtime, eg: buffered stream, tooltip,etc
  • Chain of Responsibility
    • Request should be handled by multiple objects, but decoupled from each other. MicrosoftTeams-image (11) MicrosoftTeams-image (12) MicrosoftTeams-image (13) MicrosoftTeams-image (14) MicrosoftTeams-image (15)

Day 5

  • Visitor Pattern
  • Double Dispatch
  • Circuit breaker

Day 6

  • Bridge Pattern
  • MicrosoftTeams-image (17)
  • MicrosoftTeams-image (18)
  • MicrosoftTeams-image (20)

Day 7

  • Eventlistener
  • Observer
  • Proxy
  • MicrosoftTeams-image (22)
  • MicrosoftTeams-image (25)
  • MicrosoftTeams-image (23)
  • MicrosoftTeams-image (24)

Day 8

  • Builder
  • Memento MicrosoftTeams-image (27)

Day 10

  • Flyweight Design pattern - only pattern concerened with reduction of memory usage
  • Abstract Factory pattern