docs: Improve Acyclic Visitor and Adapter readmes

This commit is contained in:
Ilkka Seppälä
2024-02-25 13:58:45 +02:00
parent 1ab8ca76fb
commit 79d41d9336
2 changed files with 11 additions and 3 deletions
+2
View File
@@ -160,3 +160,5 @@ Trade-offs:
* [Acyclic Visitor by Robert C. Martin](http://condor.depaul.edu/dmumaugh/OOT/Design-Principles/acv.pdf)
* [Acyclic Visitor in WikiWikiWeb](https://wiki.c2.com/?AcyclicVisitor)
* [Design Patterns: Elements of Reusable Object-Oriented Software](https://www.amazon.com/gp/product/0201633612/ref=as_li_tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=0201633612&linkCode=as2&tag=javadesignpat-20&linkId=675d49790ce11db99d90bde47f1aeb59)
* [Head First Design Patterns: A Brain-Friendly Guide](https://www.amazon.com/gp/product/0596007124/ref=as_li_tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=0596007124&linkCode=as2&tag=javadesignpat-20&linkId=6b8b6eea86021af6c8e3cd3fc382cb5b)
+9 -3
View File
@@ -3,15 +3,18 @@ title: Adapter
category: Structural
language: en
tag:
- Gang of Four
- Compatibility
- Gang of Four
- Integration
---
## Also known as
Wrapper
## Intent
Convert the interface of a class into another interface the clients expect. Adapter lets classes work together that
couldn't otherwise because of incompatible interfaces.
The Adapter pattern converts the interface of a class into another interface that clients expect, enabling compatibility.
## Explanation
@@ -92,9 +95,11 @@ captain.row();
```
## Class diagram
![alt text](./etc/adapter.urm.png "Adapter class diagram")
## Applicability
Use the Adapter pattern when
* You want to use an existing class, and its interface does not match the one you need
@@ -111,6 +116,7 @@ Use the Adapter pattern when
## Consequences
Class and object adapters have different trade-offs. A class adapter
* Adapts Adaptee to Target by committing to a concrete Adaptee class. As a consequence, a class adapter wont work when we want to adapt a class and all its subclasses.