Skip to content

Latest commit

 

History

History
72 lines (53 loc) · 1.12 KB

README.md

File metadata and controls

72 lines (53 loc) · 1.12 KB

Turkey and Duck

In this project, we will create an adapter that lets a turkey act like a duck.

Class Diagram

Object Adapter

classDiagram

class Duck {
    void fly();
    void quack();
}

class Turkey {
    void fly();
    void gobble();
}

class ClientGame {
    // main.cpp
    Duck ducks[];
}

class TurkeyObjectAdapter {
    Turkey turkey
    void fly();
    void quack();
}

ClientGame -->Duck
TurkeyObjectAdapter ..> Duck
TurkeyObjectAdapter --> Turkey

Loading

Class Adapter

classDiagram

class Duck {
    void fly();
    void quack();
}

class Turkey {
    void fly();
    void gobble();
}

class ClientGame {
    // main.cpp
    Duck ducks[];
}

class TurkeyClassAdapter {
    Turkey turkey
    void fly();
    void quack();
}

ClientGame -->Duck
TurkeyClassAdapter "subclass" --|> Duck
TurkeyClassAdapter "subclass" --|> Turkey

Loading
  • Class Adapter is quite complicated to create when there are methods with same names on both the Target and Adaptee interfaces
  • Class Adapters are good when Target and Adaptee are completely different (For ex. Enumeration and Iterator interfaces in Java)