前提・実現したいこと
下記のShipとPlaneそれぞれのInt型のメンバを使って、インスタンスを昇順にソートする拡張関数を作りたいです。
最初は別々に作ろうかと思ったのですが、ShipとPlaneは両方とも乗り物で、大きさの尺度が違うだけで二つともそれぞれが持つInt型のパラメータを使ってソートするという目的は変わりません。
そこで共通するTransporterというinterfaceを作り、多態性を利用して拡張関数としてsortメソッドを作ろうと思ったのですが、二つのクラスではメンバの名前も意味も大きく異なります。
Ship,Planeクラスのメンバをparameterに変えてしまう手もあるのですが、可読性が下がってしまいます。
それぞれのクラスにparameterメンバを追加し、weightやlengthと同期させる手もあるのですが、余計なメンバが増えてしまうので頭を抱えています。
何かうまい方法はないでしょうか?
該当のソースコード
Kotlin
1class Plane(var name: String, var length: Int)
Kotlin
1class Ship(var name: String, var weight: Int)
Kotlin
1 2fun Transporter.sort(){ 3 ...処理 4} 5 6interface Transporter { 7 var name:String 8 var parameter:Int 9}
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/10/09 04:40
2018/10/09 05:03
2018/10/11 09:58