From: Martin <martin.dowie@btopenworld.com>
Subject: Re: Ada-Singleton-Why does it work like this?
Date: Thu, 26 Mar 2009 01:55:46 -0700 (PDT)
Date: 2009-03-26T01:55:46-07:00 [thread overview]
Message-ID: <fba0a5d5-1192-4249-adb6-399c2095ef37@y13g2000yqn.googlegroups.com> (raw)
In-Reply-To: fubm0mevtul8.1obf4q1pf440d.dlg@40tude.net
On 25 Mar, 09:30, "Dmitry A. Kazakov" <mail...@dmitry-kazakov.de>
wrote:
> On Tue, 24 Mar 2009 17:10:11 -0700 (PDT), Martin wrote:
> > On Mar 24, 8:47 pm, "Jeffrey R. Carter"
> >> This is a very poor solution to the problem. A much simpler solution is
>
> >> package Singleton is
> >> procedure Set (Value_1 : in Integer; Value_2 : in Integer);
>
> >> procedure Print;
> >> end Singleton;
>
> > But you can not derive a class from this:
>
> Firstly you can. There are child packages in Ada, they are equivalent to
> derivation.
>
> Secondly, you may not because it is a singleton. A derived variant would be
> meaningless without making an instance of, which would be *another*
> instance of now non-singleton.
Unless you use the "tagged type" version...and that would be ok, as a
type is not an object. So you would have something like:
package Singletons is
type Singleton ...;
function Get_Instance return Singleton;
end Singletons;
package Singletons.Thread_Safe is
type Thread_Safe_Singleton is new Singleton ...;
function Get_Instance return Thread_Safe_Singleton;
end Singletons.Thread_Safe;
But only one object of either of these types could be instantiated.
Cheers
-- Martin
next prev parent reply other threads:[~2009-03-26 8:55 UTC|newest]
Thread overview: 41+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-03-24 19:01 Ada-Singleton-Why does it work like this? patrick.gunia
2009-03-24 19:10 ` Pascal Obry
2009-03-24 20:47 ` Jeffrey R. Carter
2009-03-25 0:10 ` Martin
2009-03-25 0:41 ` Jeffrey R. Carter
2009-03-25 9:30 ` Dmitry A. Kazakov
2009-03-26 8:55 ` Martin [this message]
2009-03-26 9:28 ` Dmitry A. Kazakov
2009-03-26 13:39 ` Maciej Sobczak
2009-03-26 14:07 ` Georg Bauhaus
2009-03-26 14:33 ` Dmitry A. Kazakov
2009-03-26 15:22 ` Georg Bauhaus
2009-03-26 16:31 ` Dmitry A. Kazakov
2009-03-26 14:28 ` Dmitry A. Kazakov
2009-03-26 22:00 ` Maciej Sobczak
2009-03-27 10:02 ` Dmitry A. Kazakov
2009-03-25 22:29 ` sjw
2009-03-24 20:52 ` Ludovic Brenta
2009-03-25 9:59 ` patrick.gunia
2009-03-25 10:29 ` Jean-Pierre Rosen
2009-03-25 11:26 ` Georg Bauhaus
2009-03-25 11:49 ` patrick.gunia
2009-03-29 7:29 ` Jacob Sparre Andersen
2009-03-24 21:21 ` Dmitry A. Kazakov
2009-03-25 10:07 ` patrick.gunia
2009-03-25 10:57 ` patrick.gunia
2009-03-25 11:40 ` Georg Bauhaus
2009-03-25 11:46 ` Ludovic Brenta
2009-03-25 11:55 ` patrick.gunia
2009-03-25 14:10 ` patrick.gunia
2009-03-25 14:40 ` Ludovic Brenta
2009-03-25 15:16 ` Adam Beneschan
2009-03-25 15:19 ` patrick.gunia
2009-03-25 16:52 ` Georg Bauhaus
2009-03-25 11:10 ` Dmitry A. Kazakov
2009-03-25 11:37 ` patrick.gunia
2009-03-25 12:07 ` Ludovic Brenta
2009-03-25 15:00 ` Robert A Duff
2009-03-25 11:17 ` Jean-Pierre Rosen
2009-03-26 9:04 ` Martin
2009-03-25 11:38 ` Ludovic Brenta
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox