This project was created only to practice the SOLID principles!
- A class should have a single responsibility.
- Classes should be open for extension, but closed for modification.
- A derived class must be replaceable with its base class.
- Clients should not be forced to depend on methods that they do not use
- High-level modules should not depend on low-level modules. Both should depend on the abstraction.
- Add and remove product to shopping cart;
- Calculate the total value and the discount;
- Show message to client;