Java 在多个类实例上传输对象
我正在考虑一种优化设计模式,我可以使用它将对象转移到不同类中的方法,而不是将它们作为参数传递Java 在多个类实例上传输对象,java,design-patterns,java-8,Java,Design Patterns,Java 8,我正在考虑一种优化设计模式,我可以使用它将对象转移到不同类中的方法,而不是将它们作为参数传递 class A{ } class B{ public A a; public B() { a = new A(); } } class C { public void c() { //need to access "a" of class B other than passing "a" as argument;
class A{
}
class B{
public A a;
public B()
{
a = new A();
}
}
class C
{
public void c()
{
//need to access "a" of class B other than passing "a" as argument;
}
}
在这里,需要在许多其他类方法中访问class a属性中的
a
。除了将此对象(a
)作为参数传递之外,是否存在最佳设计模式或任何可能的方式 很难说你的程序是如何构造的,但我想到了两个选项:
B
的实例传递给C
的构造函数A
只存在一个实例(即单个实例)。这意味着classB
持有classA
的一个实例,不是classB
的每个实例都持有classA
的一个实例高度依赖于
A
、B
和C
的实际角色。你能更具体一点吗?你所说的A、B和C的实际角色是什么意思?有什么好的来源可以阅读吗?这也取决于班级的原因。如果类a可以全局共享同一实例,则可以创建单例。否则你真的必须通过构造函数来传递它。@com2ghz谢谢你的回答。我将介绍单例设计模式。这是不是意味着我们只有两种选择示例中的code>不会编译。使用singleton是解决此问题的最佳方法。非常感谢。
class A {};
class B {
public A a;
public B() {
a = new A();
}
};
class C {
public B b;
public C( B b ) {
this.b = b;
}
public void someMethod() {
System.out.println( b.a );
}
};
class A {};
class B {
public static final A a = new A();
};
class C {
public void someMethod() {
System.out.println( B.a );
}
};