Groups | Search | Server Info | Keyboard shortcuts | Login | Register


Groups > comp.lang.java.programmer > #5775

Re: Automatic linking of related objects in constructor

From markspace <-@.>
Newsgroups comp.lang.java.programmer
Subject Re: Automatic linking of related objects in constructor
Date 2011-06-29 09:17 -0700
Organization A noiseless patient Spider
Message-ID <iufj6q$tmv$1@dont-email.me> (permalink)
References <eYKdnUijTfibapfTnZ2dnUVZ_uadnZ2d@westnet.com.au>

Show all headers | View raw


On 6/29/2011 2:56 AM, Qu0ll wrote:
> Suppose you have class A which contains a list of objects of class B and
> that the constructor for B takes in a reference to the A object which is
> to include it in said list. Is it safe to make a call to A's method
> addB(B b) in that B constructor passing in "this"? I have heard that
> it's bad practice to "leak" a reference to an object from within its own
> constructor because it may be in an invalid state.


Yes, imo this is correct.  It seems that sometimes you have to do it 
(constructing Swing components) but in general it's a bad idea.


> If not, how else can I automatically add the B object to the list in A
> without forcing the client programmer to explicitly call addB() given
> that they have already passed in the B as an argument?


I like the factory pattern best here

class A {

   private ArrayList<B> list;

   private A() {}

   /** Factory for constructing new A's */
   public static A newInstance( B... bs ) {
     A a = new A();
     a.list = new ArrayList<B>();
     a.list.addAll( bs );
     return a;
   }
}

Back to comp.lang.java.programmer | Previous | NextPrevious in thread | Next in thread | Find similar


Thread

Automatic linking of related objects in constructor "Qu0ll" <Qu0llSixFour@gmail.com> - 2011-06-29 19:56 +1000
  Re: Automatic linking of related objects in constructor "Qu0ll" <Qu0llSixFour@gmail.com> - 2011-06-29 19:58 +1000
  Re: Automatic linking of related objects in constructor Lew <noone@lewscanon.com> - 2011-06-29 07:28 -0400
  Re: Automatic linking of related objects in constructor Eric Sosman <esosman@ieee-dot-org.invalid> - 2011-06-29 08:29 -0400
    Re: Automatic linking of related objects in constructor Tom Anderson <twic@urchin.earth.li> - 2011-06-30 22:51 +0100
      Re: Automatic linking of related objects in constructor supercalifragilisticexpialadiamaticonormalizeringelimatisticantations <supercalifragilisticexpialadiamaticonormalizeringelimatisticantations@averylongandannoyingdomainname.com> - 2011-06-30 18:23 -0400
  Re: Automatic linking of related objects in constructor markspace <-@.> - 2011-06-29 09:17 -0700
  Re: Automatic linking of related objects in constructor supercalifragilisticexpialadiamaticonormalizeringelimatisticantations <supercalifragilisticexpialadiamaticonormalizeringelimatisticantations@averylongandannoyingdomainname.com> - 2011-06-29 19:58 -0400

csiph-web