Design-Pattern: Adapter

Ich habe im Rahmen unseres Team-Meetings ein paar Kurzpräsentationen geahlten.
Die bekommt ihr jetzt auch. Halt ohne Tonspur. 😉

Wir fangen mal mit dem Adapter an….

Der Adapter (englisch Adapter, Wrapper) ist ein Entwurfsmuster aus dem Bereich der Softwareentwicklung und gehört zu der Kategorie der Strukturmuster (Structural Patterns). Das Muster dient zur Übersetzung einer Schnittstelle in eine andere. Dadurch wird die Kommunikation von Klassen mit zueinander inkompatiblen Schnittstellen ermöglicht. Es ist ein Entwurfsmuster der sogenannten GoF-Muster (Gang of Four, siehe Viererbande).

Alt:
[code]
class AddressDisplay
{
private $addressType;
private $addressText;

public function setAddressType($addressType)
{
$this->addressType = $addressType;
}

public function getAddressType()
{
return $this->addressType;
}

public function setAddressText($addressText)
{
$this->addressText = $addressText;
}

public function getAddressText()
{
return $this->addressText;
}
}

class EmailAddress
{
private $emailAddress;

public function getEmailAddress()
{
return $this->emailAddress;
}

public function setEmailAddress($address)
{
$this->emailAddress = $address;
}
}

$emailAddress = new EmailAddress();
/* Populate the EmailAddress object */
$address = new AddressDisplay();
/* Here’s the assignment code, where I’m assigning values
from one object to another… */
$address->setAddressType(„email“);
$address->setAddressText($emailAddress->getEmailAddress());
[/code]

Neu:
[code]
class EmailAddressDisplayAdapter extends AddressDisplay
{
public function __construct($emailAddr)
{
$this->setAddressType(„email“);
$this->setAddressText($emailAddr->getEmailAddress());
}
}

$email = new EmailAddress();
$email->setEmailAddress(„user@example.com“);

$address = new EmailAddressDisplayAdapter($email);

echo($address->getAddressType() . “
[/code]

GD Star Rating
loading...

Kommentar verfassen