Before we dive into the examples, let's take a moment to discuss when we'd use a Trait. A lot of the time, we'll end up using a Trait when we add in a package. Utilizing a Trait from a package is a standard pattern because it allows package writers to encapsulate useful functionality that we can add to our classes on an as-needed basis.