Ein Beispiel könnte helfen, zu erklären. Stellen Sie sich vor, Dass die Übersetzungsmuster und Routenmuster in Tabelle 2-43 aufgeführt sind. Wenn Sie einem Routenmuster oder Übersetzungsmuster Anruf- und Parteitransformationen hinzufügen, protokolliert CallManager die transformierten Zahlen in den CDRs und rendert die transformierten Nummern auf der Anzeige des telefonierenden Telefons. CallManager fügt keine Transformationen ein, die in den Routengruppendetails der Routenliste angegeben sind (oder von einem einzelnen Egressgateway angewendet werden) in die CDRs oder rendert sie auf dem aufrufenden Gerät. Singleton-Muster gilt eigentlich als Anti-Muster und überbenutzung sollte vermieden werden. Es ist nicht unbedingt schlecht und könnte einige gültige Anwendungsfälle haben, sollte aber mit Vorsicht verwendet werden, da es einen globalen Zustand in Ihrer Anwendung einführt und Änderungen an ihm an einem Ort in den anderen Bereichen beeinflussen könnten und es ziemlich schwierig werden könnte, zu debuggen. Die andere schlechte Sache über sie ist es macht Ihren Code eng gekoppelt und es verspotten die Singleton könnte schwierig sein. Mit dem Adaptermuster können Sie ein ansonsten inkompatibles Objekt in einem Adapter umschließen, um es mit einer anderen Klasse kompatibel zu machen. Das Zustandsmuster ist ein Verhaltenssoftwareentwurfsmuster, das einen Zustandscomputer objektorientiert implementiert. Mit dem Zustandsmuster wird ein Zustandscomputer implementiert, indem jeder einzelne Status als abgeleitete Klasse der Zustandsmusterschnittstelle implementiert und Zustandsübergänge implementiert werden, indem Methoden aufruft, die durch die Übergeordnete Klasse des Musters definiert werden.

Das Zustandsmuster kann als Strategiemuster interpretiert werden, das in der Lage ist, die aktuelle Strategie durch Aufrufe von Methoden zu wechseln, die in der Schnittstelle des Musters definiert sind. Lassen Sie mich dazu noch etwas hinzufügen, was Telescoping-Konstruktor-Anti-Muster ist. An der einen oder anderen Stelle haben wir alle einen Konstruktor wie unten gesehen: Kapitel 4, “Trunk Devices”, und Kapitel 3, “Stationsgeräte”, gehen Sie ausführlich auf die spezifischen Gateway- und Stationsgeräte ein, die CallManager unterstützt. Es geht um die Zuordnung von Verantwortlichkeiten zwischen den Objekten. Was sie von strukturellen Mustern unterscheidet, ist, dass sie nicht nur die Struktur angeben, sondern auch die Muster für die Nachrichtenübermittlung/Kommunikation zwischen ihnen skizzieren. Oder anders gesagt, sie helfen bei der Beantwortung “Wie führt man ein Verhalten in Softwarekomponenten aus?” Abbildung 2-8 zeigt ein Bild des Transformationsprozesses. Ein Cisco IP Phone ruft an. Wenn CallManager die Anrufanforderung an die Anrufsteuerung übergibt, ändert CallManager die Ziffern entsprechend allen für das Telefon konfigurierten Wähltransformationen. Wenn die bereitgestellten Ziffern mit einem Übersetzungsmuster übereinstimmen, wendet CallManager die für das Übersetzungsmuster konfigurierten Wähltransformationen an.