klasy konstrukcja jest podzbiorem projektowania oprogramowania: tak to wszystko zależy.
Ponieważ pytanie jest mało subiektywne (każdy ma inne podejście) powiem tylko, że używam tej metody, nie mówiąc, że jest to najlepsze. Prawdopodobnie istnieje wiele różnych sposobów.
public interface FuncX {
public void actionX(FuncP p, FuncQ q, FuncR r);
}
I niech klasy implementują ten interfejs. Jeśli dwie klasy są małe, ale powiązane, pozwalam im implementować oba interfejsy.
Sprawia, że każda implementacja jest bardzo łatwa do sprawdzenia. Aby uruchomić system, główna metoda musi tworzyć wystąpienia określonych klas. Można na przykład konfigurować.
public class MyFuncX implements FuncX, FuncP {
public void actionX(FuncP p, FuncQ q, FuncR r) {
...
}
public void actionP(...) {
...
}
}
// the caller:
FuncX x = new MyFuncX(); // dependency
FuncQ q = ...;
FuncR r = ...;
x.actionX(x, q, r);