在多个类实例上传输对象

时间:2016-01-30 08:22:35

标签: 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; 
      }
 }

这里,需要在许多其他类方法中访问A类属性中的a。除了传递此对象(a)作为参数之外,是否存在最佳设计模式或任何可能的方式?

1 个答案:

答案 0 :(得分:0)

很难说你的程序是如何构建的,但我想到了两个选项:

  1. B的实例传递给C的构造函数。
  2. 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 );
        }
    };
    
    1. 如果只存在一个类A的实例(即Singleton)。这意味着 B包含类A的实例,并非类B的每个实例都包含类A的实例{1}}。
    2. class A {};
      class B {
         public static final A a = new A();
      };
      class C {
          public void someMethod() { 
              System.out.println( B.a );
          }
      };