comp.lang.ada
 help / color / mirror / Atom feed
From: Maciej Sobczak <see.my.homepage@gmail.com>
Subject: Re: How to return an empty aggregate
Date: Fri, 4 Apr 2008 13:35:19 -0700 (PDT)
Date: 2008-04-04T13:35:19-07:00	[thread overview]
Message-ID: <e8256040-917c-4794-9e02-387820de12d1@a70g2000hsh.googlegroups.com> (raw)
In-Reply-To: 2c23eecd-d5bf-4320-b0cd-a45b584ddfe3@m36g2000hse.googlegroups.com

On 4 Kwi, 17:38, george.p...@gmail.com wrote:

> Good example is a factory.  Should it have a
> mechanism to register-unregister itself?

Not necessarily. I might be as well selected at startup time by some
other entity (in which case it is also a strategy).

> In addition such
> objects make sense in singleton form

Yes and no.
Yes, because it does not make any sense to destroy them and create
again.
No, because it is *not harmful* to destroy and create them again (see
also the monostate pattern):

F : Factory'Class := Make_Funny_Factory;
Obj : Object := F.Make_Object;

Above, factory F is a transient entity that is used just to create one
object. It might be a singleton as well, but does not have to.

> and likely involve some sort of
> guarding mutexes or be implemented as protected or tasks.

If it's stateless, then it does not need any protection - there is
nothing to protect.

> BTW in C++
> empty factory class will be fine due to implied constructor/
> destructor.

The empty factory class will be fine in Ada as well.

--
Maciej Sobczak * www.msobczak.com * www.inspirel.com



  reply	other threads:[~2008-04-04 20:35 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-04-01 11:58 How to return an empty aggregate Maciej Sobczak
2008-04-01 12:54 ` Anh Vo
2008-04-01 17:18   ` Adam Beneschan
2008-04-02  7:16     ` Maciej Sobczak
2008-04-01 13:34 ` Dmitry A. Kazakov
2008-04-01 15:00 ` Robert A Duff
2008-04-02  7:19   ` Maciej Sobczak
2008-04-03  5:02     ` george.priv
2008-04-03  9:09       ` Maciej Sobczak
2008-04-04 15:38         ` george.priv
2008-04-04 20:35           ` Maciej Sobczak [this message]
2008-04-04 23:58             ` george.priv
2008-04-05 13:48               ` Maciej Sobczak
2008-04-05 16:04                 ` george.priv
2008-04-05 21:14                   ` Maciej Sobczak
2008-04-05 22:36                     ` george.priv
2008-04-06 19:53                       ` Maciej Sobczak
2008-04-06  7:00                     ` george.priv
2008-04-06 20:04                       ` Maciej Sobczak
2008-04-07 20:23                         ` george.priv
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox