首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过遗留代码中的多层传递新值

通过遗留代码中的多层传递新值
EN

Stack Overflow用户
提问于 2019-01-30 10:03:46
回答 1查看 79关注 0票数 0

我有一个单点后端应用程序。我有一个客户层(用于调用第二个服务),它位于几层业务逻辑之后,比如3-4层服务和其他类。在java 6中,我有一个新的要求,就是将一个字符串值从我的控制器层转发到该层,只需对中间层进行最小的修改。

什么是可能的好方法?

  1. 我知道一个-ThreadLocal。如果我使用ThreadLocal,在java 6中使用它是安全的。
  2. 还有其他设计模式可以在这个场景中使用吗?

我现在当然不能改变所有中间层的合同。

EN

回答 1

Stack Overflow用户

发布于 2019-06-03 12:52:03

您可以尝试构建作为单例启动的java。

假设您希望将变量"foo“和"bar”从上层传输到下层:

代码语言:javascript
复制
public class TransporterUpperToLowerLayer{

  public static TransporterUpperToLowerLayer getInstance(){
    if(instance == null)
      instance = new TransporterUpperToLowerLayer();
    return instance;
  }

  public void setFoo(Object foo){
    this.foo = foo;
  }

  public void setBar(Object bar){
    this.bar = bar;
  }

  public Object getFoo(){
    return foo;
  }

  public Object getBar(){
    return bar;
  }

}

在上层,您调用setter,在下层,您可以使用getter.

上层:

代码语言:javascript
复制
TransporterUpperToLowerLayer.getInstance().setFoo(myFoo);

较低层:

代码语言:javascript
复制
TransporterUpperToLowerLayer.getInstance().getFoo();
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54437888

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档