Design Patterns
A design pattern is a reusable solution to common problems. It is like a cooking recipe that provides a list of ingredients and structure that make up a dish. A design pattern provides an identifiable and predictable solution to an interface design problem. The idea of design patterns came from architecture and programming, where the idea was to optimize solutions that are known to work well within a given contexts. Solutions that came up frequently became recognized as a formula that can be reused.
Structural and behavioral features of a pattern are familiar to users. We can leverage this knowledge, rather than re-inventing the wheel, to provide greater ease and use of our app. It's good to point out that while design patterns are useful, we may need to modify them around our users' needs.
Design Patterns are typically written with a common set of attributes. Pattern names and descriptions provide a clear way to reference our patterns, especially when discussing it with our team. We also need to describe what the design pattern solves, i.e. why the pattern exists. We need to describe when to use our particular design pattern. Design patterns should also describe how it works in detail.
Many interfaces we see were probably designed with a common design pattern in mind. The Shopping Cart is one that is copied often because it's based on leveraging the recognizability of this pattern. It puts users at ease, because they have certain expectations on how online shopping works, and it satisfies business needs to make the experience as smooth as possible. As we begin to use design patterns, keep n mind that while they are great for helping us guide our design decisions, they're not meant to be used without thinking about our users' needs. Design patterns aren't off-the-shelf parts, each implementation of a pattern is a little different from every other. They aren't simple rules or heuristics either.