comp.lang.ada
 help / color / mirror / Atom feed
From: Jean-Pierre Rosen <rosen@adalog.fr>
Subject: Re: Ada-Singleton-Why does it work like this?
Date: Wed, 25 Mar 2009 12:17:57 +0100
Date: 2009-03-25T12:17:57+01:00	[thread overview]
Message-ID: <at3dqg.dj6.ln@hunter.axlog.fr> (raw)
In-Reply-To: <fb214c6f-a36d-4f8e-a633-33f8c6ee92d6@j38g2000yqa.googlegroups.com>

patrick.gunia@googlemail.com a �crit :
> [...] When you say
> that Singleton isn�t necessary in Ada this might come from the fact
> that it can�t be implemented as in other languages, though using such
> a construct might increase readability of the code.

I think there is a contradiction between "class" and "singleton". The
term "class" is used, because it includes a set of objects that are
equivalent for some point of view, i.e. a mathematical equivalence class.

Now, if the class gathers only one object, the equivalence relationship
does not make much sense...

In some cases, you need a stand-alone object. Fine, but you don't need
to define a class for that. Note that Ada allows you  to define
singleton arrays, tasks, and protected objects without an explicit type
to enforce that notion.

Some languages do not allow you to define an object unless it belongs to
a class; that's why you have to jump through complicated hoops to define
those "singleton classes", i.e. structures that are made to hold many
objects, but with appropriate design patterns to make sure there is only
one. It is simply not necessary in Ada. Note that it /can/ be
implemented like in other languages, and I don't think it would be more
complicated - just that the (unnecessary in the Ada case) complication
shines more brightly.

-- 
---------------------------------------------------------
           J-P. Rosen (rosen@adalog.fr)
Visit Adalog's web site at http://www.adalog.fr



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