It's a repository with practical tasks for workshop related to OOD.
Of course, we will focus on Object Oriented Design, but before that we have to create solution of our project. Actually, we have a bunch of tasks:
- Create class "Car" with some fields. Branch "version-0.1" Okay... let's agree that now program is a bit spagetti-code because of complexity Car class and using this class. How to add possibility move printed car? It's too hard. Let's see how to segregate responsibilies and etc. to make it better!
- Change our codebase to follow some of Object Oriented Design, for example inheritance and abstraction. Branch "version-0.2"
- Create abstract class Transport and move there what is related to the transport.
- Car should inherite Transport.
- Create class Bike which also must inherite Transport and create method Print which will print bike.
- Change to follow encapsulation principle. Need to hide implementation. Branch "version-0.3".
- Same idea, change code to follow polymorthism. Branch "version-0.4"