The aim of this repository is to provide a coaching material about Object Oriented Programming.
Though this examples should be used from «students» itself, they are tailor-made to an agile technical mentoring approach.
The repo is made using C# language on dotnet 6+.
The main
branch intentionally contains a procedural code, that is not respecting any of the OOP patterns.
The steps/*
branches contains the refactored code, each step has the explanation and an example of a «feature» of OOP language.
Steps are subsequent: step 2 starts from step 1 and so on.
steps/01_object_and_classes
contains the procedural code, but moved to a separate classessteps/02_data_abstraction
contains thesteps/01
code, but with a better data abstraction- ...
- last step contains the fully refactored code, using all OOP functionalities
As the steps
are sequential, an edit to the previous branch should be merged to the next step:
There's a resource that excellently give a lot of readings that can be used to learn and understand OOP approach: Wikipedia.
Just remember to read also Gang of Four (GoF) book: Design Patterns: Elements of Reusable Object-Oriented Software.