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();
}
};