comp.lang.ada
 help / color / mirror / Atom feed
From: Luca Stasio <stasio2000@tin.it>
Subject: Re: Ada Singleton Pattern
Date: Tue, 14 Sep 2004 15:38:56 GMT
Date: 2004-09-14T15:38:56+00:00	[thread overview]
Message-ID: <kgE1d.252080$OR2.11350229@news3.tin.it> (raw)
In-Reply-To: <87llfdgcdf.fsf@deneb.enyo.de>

Florian Weimer ha scritto:
> * Dmitry A. Kazakov:
> 
> 
>>On Mon, 13 Sep 2004 15:04:27 GMT, Luca Stasio wrote:
>>
>>
>>>Hi, there is a way to implement the Singleton Pattern in Ada?
>>>There are some examples out there?
>>>Thanx.
>>
>>package Foo is
>>   type Singleton (<>) is limited private;
>>   ... -- Public interface subroutines
>>
>>   The_Only_One : constant Singleton; -- The value
>>private
>>   type Singleton is new Integer; -- Any implementation you want
>>   The_Only_One : constant Singleton := 5;
>>
>>The public view of Singleton is unconstrained and limited, which prevents
>>it from either being copied or declaring new objects of this type.
> 
> 
> This is only a partial solution, unfortunately.
> 
> Ada *requires* that the package initialization code runs before
> The_Only_One is accessed.  This is different from many other languages
> (where the initialization order of global objects is mostly
> unspecified and not related to actual usage patterns) and solves a big
> chunk of the singleton problem.
> 
> However, you still have to deal with termination on your own: you must
> ensure that no client is still using the singleton object before you
> destroy it.  There is no direct support in the language for this part
> of the problem, and you have to use one of the traditional approaches
> if this matters to your application (or assignment 8-).
> 
> (I tried to avoid Ada-specific terminology above because Luca probably
> isn't familiar with the Ada language.)

Hi, is the one from Martin Dowie and Steve a right solution?
Thanx a lot.

Luca Stasio



  parent reply	other threads:[~2004-09-14 15:38 UTC|newest]

Thread overview: 33+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2004-09-13 15:04 Ada Singleton Pattern Luca Stasio
2004-09-13 15:33 ` Dmitry A. Kazakov
2004-09-13 16:18   ` Luca Stasio
2004-09-13 17:01   ` Luca Stasio
2004-09-13 18:43     ` Martin Dowie
2004-09-13 19:37       ` Martin Dowie
2004-09-14  2:29       ` Steve
2004-09-14  8:52         ` Martin Dowie
2004-09-14 12:46           ` Jim Rogers
2004-09-14 13:57       ` Luca Stasio
2004-09-13 20:38     ` Georg Bauhaus
2004-09-14  8:17     ` Dmitry A. Kazakov
2004-09-14 13:56       ` Luca Stasio
2004-09-14 14:21   ` Florian Weimer
2004-09-14 14:48     ` Dmitry A. Kazakov
2004-09-14 15:04       ` Florian Weimer
2004-09-15  7:33         ` Dmitry A. Kazakov
2004-09-16  6:48           ` Florian Weimer
2004-09-16  7:45             ` Dmitry A. Kazakov
2004-09-14 15:38     ` Luca Stasio [this message]
2004-09-14 16:32       ` Florian Weimer
2004-09-14 17:43         ` Luca Stasio
2004-09-15  7:27       ` Martin Dowie
2004-09-15 19:38         ` Luca Stasio
2004-09-15  5:43 ` Matthew Heaney
2004-09-15 19:38   ` Luca Stasio
2004-09-18 21:47 ` Pylinius
2004-09-19  4:19   ` Matthew Heaney
2004-09-20  3:03     ` Pylinius
2004-09-23  7:35   ` Luca Stasio
2004-09-27  5:22     ` Pylinius
2004-09-27  8:05       ` Luca Stasio
2004-10-05 17:55       ` Luca Stasio
replies disabled

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