以下是代码流:
面向客户类:
class Main{
void set(String key, String value, ...){
wrapper.set(key, value, ..);
}
String get(String key, ...){
return wrapper.get(key, ...);
}
}
/**
Wrapper/Facade layer which forwards the call to dao layer
Currently Wrapper layer code looks ugly
*/
class Wrapper{
void set(String key, String value, ...){
executePreExecutors()
backend.set(key, value, ..);
executePostExecutors()
}
String get(String key, ...){
executePreExecutors()
backend.get(key, ...);
executePreExecutors()
}
}
//db sdk connection classes
class backend{
void set(String key, String value, ...){
db.set(key, value, ..);
}
String get(String key, ...){
return db.get(key, ...);
}
}
上面的代码可以正常工作,但是Wrapper在包装器的所有方法中对执行器的前/后执行了大量重复调用。我想要类似下面的内容,但是由于不同的方法具有不同的返回类型而面临问题:
class Wrapper{
<Return Type> wrap(input data){
executePreExecutors();
backend.method(input data);
executePostExecutors();
}
}
我面临的问题是如何归纳以上代码,以免使包装层看起来丑陋
答案 0 :(得分:0)
如果我了解您的问题和标签,则可以使用模板设计模式来解决此类问题。请参阅此Wiki链接。
https://en.wikipedia.org/wiki/Template_method_pattern
您也可以将GOF模式用作模板设计模式。