As a learning aid, this book will contain many code samples in C# alongside diagrams and images to help describe specific concepts where possible. This is not a Unified Modeling Language (UML) book; however, for those with a knowledge of UML, many of the diagrams should seem familiar. This section provides a description of the class diagrams that will be used in this book.
Here, a class will be defined as including both fields and methods separated by a dashed line. If important to the discussion, then accessibility will be indicated as - for private, + for public, # for protected, and ~ for internal. The following screenshot illustrates this by showing a Car class with a private _name variable and a public GetName() method:
When showing relationships between objects, an association is shown with a solid line, an aggregation is shown with an open diamond, and a composition is shown with a filled diamond. When important to the discussion, multiplicity will be shown next to the class in question. The following diagram illustrates the Car class as having a single Owner, and up to three Passengers; it consists of four Wheels:
Inheritance is shown using an open triangle on the base class using a solid line. The following diagram shows the relationship between an Account base class and the CheckingAccount and SavingsAccount child classes:
Interfaces are shown in a similar manner to inheritance, but they use a dashed line as well as an additional <<interface>> label, as shown in the following diagram:
This section provides an overview of the models used in this book. This style/approach was chosen because, hopefully, it will be familiar to the majority of readers.