問題タブ [protocol-extension]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
65 参照

swift - 同じジェネリック プロパティとセットアップを持つ複数のクラス。重複するコードを減らすにはどうすればよいですか?

似たような質問がたくさんありますが、探しているものを正確に説明するものを見つけるのに苦労しています

ServicesジェネリックData型を処理する複数の があります。現在、それらはすべて半「抽象」クラスをサブクラス化していますが、DataService

これは、これらすべてがServices同じ保存されたプロパティを持っているためです。

そしてそれらinitも同じです:

方法もsetup同じです


これらのクラスの違いは、現在「抽象」関数で定義されているデータの処理方法です。

ほとんどのリソースは、プロトコルとプロトコル拡張を推奨しています。私もどちらを好むかですが、それを難し​​くしている 2 つの点は次のとおりだと思います。

  1. 格納されたプロパティ宣言を 1 か所に保持し、init

  2. クラスのジェネリック型。プロトコルを介してそれを維持するのは簡単ではないようです

しかし、この現在のソリューションの問題は、

  1. 誰にも実際にインスタンスをインスタンス化させたくない場合は、「抽象」クラスが公開されます
  2. eventReceivedHandlerコンパイラによって強制されません

ここに正しい解決策はありますか?このアーキテクチャは十分に一般的であると思いましたが、オンラインで何かを見つけるのに本当に苦労していました。私の検索クエリには、使い古された用語が多すぎます