gpt4 book ai didi

java - 设计模式多功能到一功能到多功能的实现

转载 作者:行者123 更新时间:2023-12-02 03:04:24 25 4
gpt4 key购买 nike

以下是代码流程:

面向客户的类:

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();
}
}

我面临的问题是如何概括上述代码以避免看起来丑陋的包装层

最佳答案

如果我理解你的问题和标签,你可以使用模板设计模式来解决此类问题。请参阅此维基链接。

https://en.wikipedia.org/wiki/Template_method_pattern

模板设计模式也可以引用GOF模式。

关于java - 设计模式多功能到一功能到多功能的实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57030549/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com