Chapter 3

Abstraction Smells

Abstract

Abstraction is a powerful principle that provides a means for simple yet effective communication and problem solving. This chapter introduces the principle of abstraction and key enabling techniques (i.e., provide a crisp conceptual boundary and a unique identity, map domain entities, ensure coherence and completeness, assign single and meaningful responsibility, and avoid duplication) that enable the effective application of the principle of abstraction in software design. It also provides a detailed description of the following design smells that result from the violation of the principle of abstraction: Missing Abstraction, Imperative Abstraction, Incomplete Abstraction, Multifaceted Abstraction, Unnecessary ...

Get Refactoring for Software Design Smells now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.