Heim  >  Artikel  >  Web-Frontend  >  js-Entwurfsmuster: Was ist das Adaptermuster? Einführung in das JS-Adaptermuster

js-Entwurfsmuster: Was ist das Adaptermuster? Einführung in das JS-Adaptermuster

不言
不言Original
2018-08-17 17:00:102440Durchsuche

Dieser Artikel enthält Inhalte zu js-Designmustern: Was ist das Adaptermuster? Die Einführung des js-Adaptermodus hat einen gewissen Referenzwert. Ich hoffe, dass er für Sie hilfreich ist.

Was ist das Adaptermuster?

Definition: Konvertieren Sie die Schnittstelle einer Klasse in eine andere Schnittstelle, die der Kunde wünscht. Das Adaptermuster ermöglicht die Zusammenarbeit von Klassen, die sonst aufgrund inkompatibler Schnittstellen nicht zusammenarbeiten würden.

Hauptlösung: Hauptlösung: In Softwaresystemen ist es oft notwendig, einige „vorhandene Objekte“ in eine neue Umgebung zu bringen, und die von der neuen Umgebung geforderten Schnittstellen können dadurch nicht erfüllt werden die vorhandenen Objekte.

Wann zu verwenden ist: 1. Das System muss vorhandene Klassen verwenden, aber diese Art von Schnittstelle entspricht nicht den Anforderungen des Systems. 2. Sie möchten eine Klasse erstellen, die wiederverwendet werden kann, um mit einigen Klassen zu arbeiten, die nicht viel miteinander zu tun haben, einschließlich einiger Klassen, die möglicherweise in Zukunft eingeführt werden. Diese Quellklassen verfügen nicht unbedingt über konsistente Schnittstellen. 3. Fügen Sie eine Klasse durch Schnittstellenkonvertierung in eine andere Klasse ein. (Zum Beispiel haben Tiger und Vögel jetzt einen fliegenden Tiger. Ohne die Notwendigkeit, Entitäten hinzuzufügen, fügen Sie einen Adapter hinzu, der ein Tigerobjekt enthält und die Flugschnittstelle implementiert.)

So lösen Sie: Erben oder abhängig von (empfohlen).

Schlüsselcode: Der Adapter erbt oder verlässt sich auf vorhandene Objekte, um die gewünschte Zielschnittstelle zu erreichen.

Anwendungsbeispiel für den JS-Adaptermodus: 1. Amerikanische Elektrogeräte haben 110 V und China 220 V. Um 110 V in 220 V umzuwandeln, ist ein Adapter erforderlich. 2. JAVA JDK 1.1 stellt die Enumeration-Schnittstelle und 1.2 die Iterator-Schnittstelle bereit. Wenn Sie das 1.2-JDK verwenden möchten, müssen Sie die Enumeration-Schnittstelle des vorherigen Systems in die Iterator-Schnittstelle konvertieren . 3. Führen Sie das WINDOWS-Programm unter LINUX aus. 4. JDBC in JAVA.

Vorteile des js-Adaptermodus: 1. Zwei beliebige, nicht verwandte Klassen können zusammen ausgeführt werden. 2. Verbesserte Wiederverwendung von Klassen. 3. Erhöhte Transparenz der Klasse. 4. Gute Flexibilität.

Nachteile des js-Adaptermodus: Die übermäßige Verwendung von Adaptern führt dazu, dass das System sehr unübersichtlich und als Ganzes schwer zu verstehen ist. Es ist beispielsweise offensichtlich, dass die A-Schnittstelle aufgerufen wird, aber tatsächlich ist sie intern an die Implementierung der B-Schnittstelle angepasst. Wenn dies in einem System zu häufig vorkommt, kommt es einer Katastrophe gleich. Wenn dies nicht erforderlich ist, können Sie das System daher direkt ohne Verwendung des Adapters rekonstruieren.

JS-Adaptermuster-Anwendungsszenario: Motivation, die Schnittstelle eines normal laufenden Systems zu ändern, dann sollten Sie die Verwendung des Adaptermusters in Betracht ziehen.

Hinweis: Der Adapter wird nicht während der Detailplanung hinzugefügt, sondern um das Problem des Projekts im Betrieb zu lösen.

Beispiel für ein js-Adaptermuster

Zum Beispiel müssen wir die alte Schnittstelle an eine neue Schnittstelle anpassen

// 老接口
const oldCity = (function() {
    return [
        {
            name: 'hangzhou',
            id: 11,
        },
        {
            name: 'jinhua',
            id: 12
        }
    ]
}())

// 新接口希望是下面形式
// {
//     hangzhou: 11,
//     jinhua: 12
// }

// 这时候就可采用适配者模式
const adaptor = function(oldCity) {
    const obj = {};
    for (let city of oldCity) {
        obj[city.name] = city.id
    }
    return obj
};

console.log(adaptor(oldCity));

Verwandte Empfehlungen:

js Entwurfsmuster: Was ist das Vermittlermuster? Einführung in das js-Mediator-Muster

js-Designmuster: Was ist das Zustandsmuster? Einführung in den JS-Statusmodus

Das obige ist der detaillierte Inhalt vonjs-Entwurfsmuster: Was ist das Adaptermuster? Einführung in das JS-Adaptermuster. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn