Witam, często borykam się z problemem zaprojektowania dobrego API.
Teraz własnie mam taki case:
- Wystawiam interfejs dla wielu adapterów. Interfejs wygląda tak, że adapter wywołuje jakąś akcję, inicjalizuje ją, i będzie musiał kiedyś ją zakończyć, ewentualnie przekazując dane.
Robię to tak że
class ExampleAdapter {
public void doStuff(MyApi api) {
Consumer<Param> endOperation = api.initializeOperation(param1, param2, param3);
// do stuff
endOperation.accept(param4);
}
}
Ale niektóre adaptery, nie potrzebują tej "dualności" osobnej inicjalizacji i finalizacji, i mogłyby zrobić wszystko w jednym callu, wyglądają tak:
class SimpleAdapter {
public void doStuff(MyApi api) {
api.initializeOperation(param1, param2, param3).accept(param4);
}
}
I teraz się zastanawiam, zostawić tak jak jest? Czy dodać do MyApi
prostszą wersję tej metody, którą możnaby zawołać tak
class SimpleAdapter {
public void doStuff(MyApi api) {
api.operation(param1, param2, param3, param4);
}
}