Code the sort
To implement the sort, first, we will define the interfaces that a sort library should implement. Defining the interface before the actual coding is a good practice. When there are many implementations, it is sometimes recommended to first create a simple one and start using it so that the interface may evolve during the phase, and when the more complex implementations are due, then the interface to be implemented is already fixed, more or less.
Creating the interfaces
The interface in our case is very simple.
package packt.java9.by.example.ch03; public interface Sort { void sort(SortableCollection collection); }
The interface should do only one thing—sort something that is sortable. As we wanted to be very general in this approach, we also have to define what sortable is. To do so, we will need another interface.
package packt.java9.by.example.ch03; public interface SortableCollection { }
Creating BubbleSort
Now, we can start creating the bubble sort that implements the...