comp.lang.ada
 help / color / mirror / Atom feed
From: Jacob Sparre Andersen <sparre@nbi.dk>
Subject: Re: Ada-Singleton-Why does it work like this?
Date: Sun, 29 Mar 2009 09:29:02 +0200
Date: 2009-03-29T09:29:02+02:00	[thread overview]
Message-ID: <ygeeiwgaitd.fsf@sparre-andersen.dk> (raw)
In-Reply-To: 19a1c6cf-4e4d-402c-902d-3ea2055b4779@c11g2000yqj.googlegroups.com

"patrick.gunia@googlemail.com" <patrick.gunia@googlemail.com> wrote:

> I used a tagged type because I wanted to use the Singleton
> implementation as bsae class for other classes with more
> functionality though sharing the singleton behaviour.

That's a very complicated way of creating singletons, unless of course
that you actually have some operations which should work on your whole
class of singletons.

In general, it is easier to write:

   package Single_Car is
      procedure Start;
      procedur Stop;
   end Single_Car;

   package Single_Plane is
      procedure Start;
      procedur Stop;
   end Single_Plane;

than it is to write:

   package Singleton is
      type Instance (<>) is tagged limited private;
      ...
   private
      ...
   end Singleton;

   package Single_Car is
      type Instance is new Singleton.Instance with private;
      procedure Start (Item : in out Instance);
      procedure Stop (Item : in out Instance);
   private
      ...
   end Single_Car;

   package Single_Plane is
      type Instance is new Singleton.Instance with private;
      procedure Start (Item : in out Instance);
      procedure Stop (Item : in out Instance);
   private
      ...
   end Single_Plane;

Greetings,

Jacob
-- 
"Very small. Go to sleep" -- monster (not drooling)



  parent reply	other threads:[~2009-03-29  7:29 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
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 [this message]
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