关于模式有两个类A.class和B.class .....

时间:2011-10-22 03:23:38

标签: java

A.class有一个B实例,即b。在B中,我想使用A的一些方法,我可以用一些方法来使这个变得简单吗?以下案例。

class A{
   private B b = new B(this)

   public void anyMethod(){

   }
}



class B{
   private A mA;
   B(A a){
     mA = a;
   }

   public void someMethod(){
      mA.anyMethod();
   }
}

是的,我正在寻找更优雅的解决方案

1 个答案:

答案 0 :(得分:0)

代码 在Java中有效,我同意这些评论 - new B(this)看起来有问题。将该行移动到构造函数将无济于事,因为在A构造函数结束之前,仍然存在B在A中使用方法的风险。

我认为将B的实例化与A的初始化过程(包括构造函数)完全分开是一个更好的主意,稍后只需使用init方法设置它,就像这样

class A {

    private B b;

    public A() {

    }

    public void initB() {
        b = new B(this);
    }

    public void anyMethod() {

    }

}

后来:

A a = new A();
a.initB();