# Low Level Design
All Low Level Design notes →1 — Refactoring Techniques
Surveys the catalog of small, behavior-preserving transformations used to improve code structure without changing external behavior.
2 — Identifying Code Smells
Covers recognizing structural warning signs — long methods, feature envy, shotgun surgery — that signal a refactor is due before the design breaks down.
3 — Replace Conditional with Polymorphism
Explains replacing branching type-checks with polymorphic dispatch so new cases extend the code rather than modify a growing switch statement.
4 — Extract Object
Covers pulling a cohesive group of fields and behavior out of a bloated class into a new, focused collaborator.
5 — Introduce Parameter Object
Explains grouping a repeated cluster of parameters into a single object to reduce signature churn and clarify caller intent.
6 — Builder Refactoring
Covers migrating a telescoping constructor or setter-heavy object into a builder that enforces a valid construction order.