Tag: 软件设计

Kotlin:排序| 交换操作的位置

我在Kotlin中实现了Quicksort算法。 为此,我使用types参数和单个函数( sort)创建了一个接口ISort 。 为了排序,我需要交换操作。 我想知道这个交换function的最佳位置是什么。 我的想法: 1)不幸的是,在Kotlin中,不能使接口function得到保护。 因此,每个class级都可以在其实施中看到交换,这并不太好(尽管也不算太差,我同意)。 2)把它放在QuickSort实现中更糟,因为可能有几个需要交换function的ISort接口的实现。 3)我的下一个想法是创建一个单例对象,但Kotlin允许具有types参数的对象。 这里是接口定义: interface ISort { fun sort(toSort: MutableList): MutableList // 1) Putting swap here has a too high visibility } 这里是QuickSort类的框架: class QuickSort : ISort { override fun sort(toSort: MutableList): MutableList { doQuickSort(toSort) // Internally uses swap return toSort } // 2) Putting swap here […]