在java中实现由同一个工厂创建的类共用一个类变量,不用静态的话如何实现

kavoe 2009-07-31 07:31:24
如题,想要实现一种要求

一个工厂类可能创建好几个实例,但这几个实例有一个变量需要共享,都能访问和修改,但是不能用静态变量,怎么做呢
小弟想了半天了,没想出办法来,大家来帮帮忙,thx!!
...全文
194 10 打赏 收藏 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
sherry0929 2009-08-05
  • 打赏
  • 举报
回复
帮顶
wlm007007007007 2009-08-05
  • 打赏
  • 举报
回复
这个不太懂,但是帮顶一下,期待高手出现,希望楼主能尽快解决难题
lixkyx 2009-08-02
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 wym2005em 的回复:]
把工厂写在内部类里,在外部类里声明那个要共享的变量!!!!
[/Quote]

这个是最好的办法了。
冰思雨 2009-08-01
  • 打赏
  • 举报
回复

public class Product{
private Object shared;
public Product(Object shared){
this.shared=shared;
}
}


public class Factory{
private Object shared = new Object();
public Product getProduct(){
return new Porduct(shared);
}
}
}

JamesLiu 2009-08-01
  • 打赏
  • 举报
回复

public class A {
private static A a = new A();
private String test;

public static B getB() {
//可以通过a.test来访问
return new B();
}
}
believefym 2009-07-31
  • 打赏
  • 举报
回复
何苦呢。。。

保存到文件里去
守望者Howard 2009-07-31
  • 打赏
  • 举报
回复
创造工厂可以用静态变量吗?如果可以那就用单例模式。把这个公共的对象声明在工厂里,然后创造工厂时用单例,这样得到的就永远是同一个工厂,那里面的对象自然就是同一个对象,再在创造出来的对象里引用这个公共对象就行了。
如果工厂也不能用静态那就不好办了。我也问一句,为什么不能用静态呢?
rumlee 2009-07-31
  • 打赏
  • 举报
回复
比较好的方式当然是用静态变量,不知道为什么不能用静态变量。
wym2005em 2009-07-31
  • 打赏
  • 举报
回复
把工厂写在内部类里,在外部类里声明那个要共享的变量!!!!

62,620

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧