Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

Please use adapter design pattern for the corresponding code below using this re

ID: 3826092 • Letter: P

Question

Please use adapter design pattern for the corresponding code below using this reference https://sourcemaking.com/design_patterns/adapter

class AbstractPlug {

public:

void virtual RoundPin();

void virtual PinCount();

};

class Plug : public AbstractPlug {

public:

void RoundPin() {

cout << " I am Round Pin" << endl;

}

void PinCount() {

cout << " I have two pins" << endl;

}

};

class AbstractSwitchBoard {

public:

void virtual FlatPin();

void virtual PinCount();

};

class SwitchBoard : public AbstractSwitchBoard {

public:

void FlatPin() {

cout << " Flat Pin" << endl;

}

void PinCount() {

cout << " I have three pins" << endl;

}

};

class Adapter : public AbstractPlug {

public:

AbstractSwitchBoard *T;

Adapter(AbstractSwitchBoard *TT) {

T = TT;

}

void RoundPin() {

T->FlatPin();

}

void PinCount() {

T->PinCount();

}

};

void main(int argc, char* argv[])

{

SwitchBoard *mySwitchBoard = new SwitchBoard; // Adaptee

AbstractPlug *adapter = new Adapter(mySwitchBoard);

adapter->RoundPin();

adapter->PinCount();

}

Explanation / Answer

Adapter class for this program is:-

class Adapter : public AbstractPlug {

AbstractSwitchBoard *T;

Adapter(AbstractSwitchBoard *TT) {

T = TT;

}

void RoundPin() {

T->FlatPin();

}

void PinCount() {

T->PinCount();

}

};