Skip to content

Latest commit

 

History

History
45 lines (26 loc) · 850 Bytes

README.md

File metadata and controls

45 lines (26 loc) · 850 Bytes

Duck

This project was created to learn about design patterns.

Design Principles

  1. Identify the aspects of your application that vary and separate them from what stays same.

  2. Program to an interface and not to an implementation.

  3. Favour composition over inheritance.

  4. Loosely coupled objects should be favoured.

  5. Classes should be closed for modification but should be open for extension.

  6. Depend upon abstractions but do not depend upon concrete classes (Dependency inversion principle).

  7. Law of demeter or principle of least knowledge or friends.

OO Patterns

1)Strategy

2)Observer

3)Decorator

4)Simple factory

5)Abstract factory

6)Singleton

7)Command

8)Adapter

9)Facade

  1. Iterator (not implemented as STL is the best resource for aggregates and iterators)

  2. Composite

  3. State