Wzorzec jest przykładem klasycznego rozwiązania w zakresie wielokrotnego wykorzystania gotowego kodu w świecie programowania obiektowego. Uniwersalne algorytmy są umieszczane w klasach bazowych będących przedmiotem dziedziczenia. W klasach dziedziczących natomiast implementowane są wymagane metody i wykorzystywany jest algorytm zaimplementowany w klasie bazowej.

public abstract class BubbleSorter { private int operations = 0; protected int length = 0; protected int DoSort() { operations = 0; if (length <= 1) return operations; for (int nextToLast = length-2; nextToLast >= 0; nextToLast--) for (int index = 0; index <= nextToLast; index++) { if (OutOfOrder(index)) Swap(index); operations++; } return operations; } protected abstract void Swap(int index); protected abstract bool OutOfOrder(int index); } public class IntBubbleSorter : BubbleSorter { private int[] array = null; public int Sort(int[] theArray) { array = theArray; length = array.Length; return DoSort(); } protected override void Swap(int index) { int temp = array[index]; array[index] = array[index + 1]; array[index + 1] = temp; } protected override bool OutOfOrder(int index) { return (array[index] > array[index + 1]); } }