ホームページ >ウェブフロントエンド >jsチュートリアル >JSにおけるポリモーフィズムの使い方を詳しく解説
今回は、JS でのポリモーフィズムの使用について詳しく説明します。JS でポリモーフィズムを使用する際の 注意点 について、実際のケースを見てみましょう。
ポリモーフィズムは、オブジェクト指向プログラミング言語において非常に重要です。 JAVA では、ポリモーフィズムは継承によって実現されます。以下の通り:
rreee
ポリモーフィズムの考え方は、実際には「何をするか」と「誰が行うか」を分離することです。これを達成するには、最終的には、まず型間の結合関係を排除する必要があります。
Java では、上向きキャストによってポリモーフィズムを実現できます。 JavaScript の変数は実行時に変数になります。これは、JavaScript オブジェクト の多態性が生物学的なすべてに関連していることを意味します。
ポリモーフィズムの最も基本的な機能は、手続き型の条件分岐ステートメントをオブジェクト ポリモーフィズムに変換することで削除することです。
地図アプリケーションを作成するとします。アプリケーションに接続するためのオプションの地図 API プロバイダーが 2 つあります。現在、Google Maps を選択しています。show メソッドは、ページ上に地図全体を表示する役割を担う Google Maps API で提供されています。サンプルコードは次のとおりです:
public abstract class Animal { abstract void makeSound(); // 抽象方法 } public class Chicken extends Animal{ public void makeSound(){ System.out.println( "咯咯咯" ); } } public class Duck extends Animal{ public void makeSound(){ System.out.println( "嘎嘎嘎" ); } } Animal duck = new Duck(); // (1) Animal chicken = new Chicken(); // (2)
renderMap 関数は現在ある程度の柔軟性を維持していますが、この柔軟性は非常に脆弱であるため、一旦 Soso マップに置き換える必要があると、間違いなく renderMap 関数を変更して条件分岐ステートメントを積み続ける必要があることがわかります。そこに。
まず、プログラムの同じ部分、つまり地図を表示する部分を抽象化しましょう:
var googleMap = { show: function(){ console.log( '开始渲染谷歌地图' ); } }; var renderMap = function(){ googleMap.show(); }; renderMap(); // 输出:开始渲染谷歌地图 var googleMap = { show: function(){ console.log( '开始渲染谷歌地图' ); } }; var baiduMap = { show: function(){ console.log( '开始渲染百度地图' ); } }; var renderMap = function( type ){ if ( type === 'google' ){ googleMap.show(); }else if ( type === 'baidu' ){ baiduMap.show(); } }; renderMap( 'google' ); // 输出:开始渲染谷歌地图 renderMap( 'baidu' ); // 输出:开始渲染百度地图
その後、Tencent Maps のサポートを追加したため、元のコードを変更せずにこの機能をすぐに実装できるようになりました:
var renderMap = function( map ){ if ( map.show instanceof Function ){ map.show(); } }; renderMap( googleMap ); // 输出:开始渲染谷歌地图 renderMap( baiduMap ); // 输出:开始渲染百度地图
ポリモーフィック テクノロジは非常に重要であり、多くの デザイン パターン はポリモーフィズムを巧みに使用して実装されています。
この記事の事例を読んだ後は、この方法を習得したと思います。さらに興味深い情報については、php 中国語 Web サイトの他の関連記事に注目してください。
推奨書籍:
以上がJSにおけるポリモーフィズムの使い方を詳しく解説の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。