Ciao, la tua soluzione va bene, crei due (o più) metodi che faranno da interfaccia per il lavoro che avviene dietro le quinte. Sta a te decidere come procedere. Dipende dalla logica del programma, se è diversa di volta in volta o se è solo una questione di impostare un valore di default. Del tipo, qui:
Codice PHP:
class Sorter {
public:
Sorter(){...}
void sort(Records& r) {
if (r.size() < 20) algo_1(r);
else if (r.size() < 100) algo_2(r);
....
}
private:
void algo_1(Records& r);
void algo_2(Records& r);
....
dai come interfaccia all'utente il metodo sort, che sbriga lui il lavoro sporco (la scelta dell'algoritmo più efficiente). Mentre qui:
Codice PHP:
class WebServer {
public:
WebServer(){...}
void connect(string host, int port = 80) {...}
}
conviene impostare solo il valore di default, tanto la logica non cambia.
Spero sia chiaro