CoffeeMachine This code represents a virtual coffee machine. The excerscise is an excellent way to practice TDD, Abstract Class, Interface and more. Medium Articles Here are my articles based on this excercise split into 3 topics. Abstract Class vs Interface Dependency Injection and Inversion Circular Dependency