add void repo files
This commit is contained in:
parent
80ef6e92c4
commit
11895a94c4
148 changed files with 15344 additions and 0 deletions
|
|
@ -0,0 +1,27 @@
|
|||
# Understanding Composition in Software Development
|
||||
|
||||

|
||||
|
||||
## Metadata
|
||||
- Author: [[Hamida Meknassi]]
|
||||
- Full Title: Understanding Composition in Software Development
|
||||
- Category: #articles
|
||||
- Document Tags: [[dev]] [[dev/design-patterns]]
|
||||
- URL: https://medium.com/@hamida.meknassi/understanding-composition-in-software-development-74f84ab984ce
|
||||
- Archive: https://web-archive.alecodes.page/bookmarks?bf=1&search=&title=Understanding%20Composition%20in%20Software%20Development
|
||||
> [!tldr]
|
||||
> Composition is a software development principle that emphasizes building complex systems by combining smaller, independent components rather than using inheritance. This approach offers flexibility, reusability, and easier maintenance, making it a popular choice among developers. By favoring composition, developers can create more adaptable and manageable systems.
|
||||
|
||||
## Highlights
|
||||
At its core, composition is about constructing complex systems by piecing together smaller, distinct objects. In object-oriented programming lingo, we often describe it as a “has-a” relationship rather than the “is-a” relationship that comes with inheritance. [View Highlight](https://read.readwise.io/read/01j7jxtrsfs087rbx45dgh9skx))
|
||||
|
||||
Flexibility : As requirements change, it’s easier to swap or upgrade individual components without disrupting the entire system.
|
||||
Reusability : Crafted correctly, components can be used across various parts of a project or even in entirely different projects.
|
||||
Maintainability : Focused and modular components are easier to understand, test, debug, and enhance.
|
||||
Reduced Side Effect : Unlike inheritance, where modifying the base can have widespread consequences, composition limits the ripple effect of changes. [View Highlight](https://read.readwise.io/read/01j7jxvsqhk5j1bzjarjrwymhr))
|
||||
|
||||
When facing a complex problem, ask:
|
||||
- Which components make up this system?
|
||||
- How can I break this down into smaller, more manageable pieces?
|
||||
- Can I reuse existing components? [View Highlight](https://read.readwise.io/read/01j7jxxp9dp3sqncv2d9rewnqs))
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue