In the previous chapter, you were introduced to the SOLID principles of object-oriented design. This chapter will cover all of them in more detail. Moreover, each principle will be discussed along with a proof of concept example so as to reinforce your understanding. In order to grasp how these principles can help improve class design, the chapter will discuss wrong design first. Then, once you are clear about the problems created by the wrong design, this chapter will present the correct design, which rectifies the shortcomings of the improper design. The explanations will use UML class diagrams to convey the point. Although I won't go into the details of UML, for the sake of clarity I will include the necessary detailing of UML diagrams in the form of notes.