Analogies as Abstractions

Analogies are an effective way of communicating knowledge of one domain by mapping the domain’s concepts to another similar domain that is known by that person. In this way, a person can gain understanding of domain B through their existing knowledge of domain A.

There is, however, a possible third player in this scenario - an abstract concept through with domains A and B are related in the context of the analogy. We can view the two domains that the analogy connects as subclasses of an abstract parent class.

I thought this was a huge revelation, until I realized it’s also the foundation of books like the Gang of Four’s Design Patterns, and Fowler’s Analysis Patterns. Even if it’s not a new discovery, realizing that this concept was key in the derivation of those patterns makes it easy to see how it’s possible to derive new patterns every day to aid us both in Software Engineering and in everyday life.

About Adam Platt

Adam Platt is a technologist with more than a decade of experience across the full stack. His passion for technology and penchant for rendering complex technical ideas into simple terms have made him an in-demand speaker. His resume includes BriForum, the PowerShell Summit, teaching engagements and more.

He is one of the 10 types of people who understand binary and he can solve a Rubik’s Cube.

About Adam Platt

Adam Platt is a technologist with more than a decade of experience across the full stack. His passion for technology and penchant for rendering complex technical ideas into simple terms have made him an in-demand speaker. His resume includes BriForum, the PowerShell Summit, teaching engagements and more.

He is one of the 10 types of people who understand binary and he can solve a Rubik’s Cube.