前の例では標準メソッドの使用を示しましたが、実際的なシナリオではありませんでした。
Series インターフェイスは広く使用されており、多くのプログラムがそれに依存していました。
いくつかのシリーズ実装に、シリーズの次の n 要素を含む配列を返すメソッドが追加されていることが判明しました。
getNextArray(int n) メソッドを使用して Series インターフェイスを改善することが決定されました。n は取得する要素の数を指定します。
標準メソッドの前にこのメソッドを追加すると、それを定義していない既存のコードが壊れます。
標準メソッドを使用すると、既存のコードに問題を引き起こすことなく、新しいメソッドを Series インターフェイスに追加できます。
すべての状況で機能する実装を提供できない場合、インターフェースに追加された標準メソッドを使用するとエラーが報告されることがあります。
これらのデフォルトのメソッドはオプションのコードを定義します。
場合によっては、どのような状況でも機能するようにデフォルトのメソッドを定義できます。
getNextArray() メソッドは一例であり、Series インターフェイスですでに必要とされている getNext() メソッドを使用して実装できます。
標準の getNextArray() メソッドを使用して Series の新しいバージョンを実装することができます。
標準の getNextArray() メソッドは、元の Series 仕様にすでに存在する getNext() メソッドを使用して実装されます。
Series を実装するクラスは、メソッドをオーバーライドすることなく getNextArray() を使用できます。
getNextArray() を追加しても既存のコードは無効になりません。
クラスは、必要に応じて getNextArray() の独自の実装を提供できます。
標準的な方法の利点:
既存のコードを無効にすることなくインターフェースを進化させることができます。
プレースホルダー実装を必要とせずにオプションの機能を提供します。
getNextArray() の場合、Series 実装がメソッドを必要としない場合、プレースホルダー実装を提供する必要がなく、その結果コードがよりクリーンになります。
以上が標準的な方法のより実践的な例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。