Assume:
A simple modular java library has only two module:
package com.mycorp.lib.logger;
public class LogcatLogger implements Logger {
@Override
public void out(LogcatLogger.LogMessage message){
Log.i("TAG", message.status);
}
...
}
package com.mycorp.lib.webservice;
public class JsonWebservice implements Webservice {
@Override
public void onErrorFound(String status) {
LogcatLogger.LogMessage message = new LogcatLogger.LogMessage();
message.status = status;
LogcatLogger.out(message);
}
...
}
Question:
How to make com.mycorp.lib.webservice and com.mycorp.lib.logger independent like this? ( client application can invoke methods too )
Notes:
I try Command Pattern before:
Result: api has many methods and many command class must create
Update1:
Added LogMessage as nested static class of LogcatLogger for more challenging situation
Update2:
Target Design image added.
Any help appreciated.