消灭if-else
2019-04-04 本文已影响0人
洺优
Android 接入 Flutter进行中。
参考了flutter工程师的写法,感觉简洁许多,主要是使用map来替代了if else。
调整完效果图:
因为使用了lamda看着就更加简单了。
image.png
尽管目前只有一个地方用得上,但是考虑到未来的拓展性,我选择构建了一个单例,。
用一个map来存储名字以及callback,这样就可以随用随注。
public class FltBridgeInstance {
private static FltBridgeInstance instance = null;
Map<String, IFltCallBack> methods = new HashMap<>();
public static FltBridgeInstance getInstance() {
if (instance == null) {
Class var0 = FltBridgeInstance.class;
synchronized(FltBridgeInstance.class) {
if (instance == null) {
instance = new FltBridgeInstance();
}
}
}
return instance;
}
public FltBridgeInstance() {}
public void registMethod(String methodName, IFltCallBack callBack) {
methods.put(methodName, callBack);
}
public boolean hasMethod(String methodName) {
return methods.get(methodName)!=null;
}
public IFltCallBack getCallBack(String methodName) {
return methods.get(methodName);
}
}
public interface IFltCallBack {
void onMethodCall(MethodCall call, MethodChannel.Result result);
}
显然优雅了许多对不对。