comp.lang.ada
 help / color / mirror / Atom feed
From: "Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de>
Subject: Re: Convention for naming of packages
Date: Tue, 14 Feb 2012 14:33:43 +0100
Date: 2012-02-14T14:33:43+01:00	[thread overview]
Message-ID: <ghn1o0yb1kou$.1n2fymmlq5oz5.dlg@40tude.net> (raw)
In-Reply-To: op.v9nvont0ule2fv@douda-yannick

On Tue, 14 Feb 2012 10:08:37 +0100, Yannick Duchêne (Hibou57) wrote:

> Le Mon, 13 Feb 2012 22:02:17 +0100, Dmitry A. Kazakov  
> <mailbox@dmitry-kazakov.de> a écrit:

>>> About package holding singleton really holding singleton, like say a Log
>>> package which would create a singleton file "Log.File" objct, I believe
>>> that's not good for re‑usability (ex. what about multiple task?). Better
>>> provide a type with a constructor,
>>
>> Constructor = constructor or constructor = constructing function? The
>> latter is bad design.
> I never get into trouble with this. If I am likely to get into troubles  
> with it, I would like to know before it happens and have a chance to  
> prevent it before, obviously. On the mean time, I'm not a big tagged type  
> user, and feel to understand your objections to it, mainly applies to  
> tagged types hierarchies.

You may have a constructor for a singleton type because constructor cannot
be called explicitly and you cannot get rid of the constructor anyway. The
constructor is generated by the compiler (except for misuses of the pragma
Import (Ada, etc).

You shall never provide a constructing function (=factory) for singleton
types. A factory can be used several times, which you, as a package
provider, cannot control.

-- 
Regards,
Dmitry A. Kazakov
http://www.dmitry-kazakov.de



  reply	other threads:[~2012-02-14 13:33 UTC|newest]

Thread overview: 88+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-02-09 21:10 Convention for naming of packages Yannick Duchêne (Hibou57)
2012-02-09 21:39 ` Jeffrey Carter
2012-02-10 15:07   ` Yannick Duchêne (Hibou57)
2012-02-10 17:04     ` Georg Bauhaus
2012-02-10 17:09     ` Georg Bauhaus
2012-02-10 17:41       ` Yannick Duchêne (Hibou57)
2012-02-13  9:33       ` Yannick Duchêne (Hibou57)
2012-02-11  0:56     ` Randy Brukardt
2012-02-13  3:09       ` BrianG
2012-02-10 17:21   ` Pascal Obry
2012-02-10 18:03     ` Yannick Duchêne (Hibou57)
2012-02-11  1:06     ` Randy Brukardt
2012-02-11  9:22       ` Simon Wright
2012-02-11 10:17         ` Yannick Duchêne (Hibou57)
2012-02-11 19:24           ` Yannick Duchêne (Hibou57)
2012-02-11 20:06             ` Simon Wright
2012-02-12  9:18               ` Yannick Duchêne (Hibou57)
2012-02-12 10:22                 ` Simon Wright
2012-02-13  9:21         ` Yannick Duchêne (Hibou57)
2012-02-12 19:53       ` J-P. Rosen
2012-02-12 21:19         ` Yannick Duchêne (Hibou57)
2012-02-13  8:53           ` Dmitry A. Kazakov
2012-02-13  9:12             ` Yannick Duchêne (Hibou57)
2012-02-13 11:03               ` Dmitry A. Kazakov
2012-02-13 11:57                 ` Yannick Duchêne (Hibou57)
2012-02-13 12:30                   ` Yannick Duchêne (Hibou57)
2012-02-13 13:07                     ` Dmitry A. Kazakov
2012-02-13 14:01                       ` Yannick Duchêne (Hibou57)
2012-02-13 14:59                         ` Dmitry A. Kazakov
2012-02-13 15:05                           ` Yannick Duchêne (Hibou57)
2012-02-13 15:23                             ` Dmitry A. Kazakov
2012-02-14 21:02                               ` Yannick Duchêne (Hibou57)
2012-02-13 13:01                   ` Dmitry A. Kazakov
2012-02-13 13:04                     ` Yannick Duchêne (Hibou57)
2012-02-13 13:19                       ` Dmitry A. Kazakov
2012-02-13 14:20                         ` Yannick Duchêne (Hibou57)
2012-02-13 15:11                           ` Dmitry A. Kazakov
2012-02-13 16:24                             ` Yannick Duchêne (Hibou57)
2012-02-13 17:19                               ` Dmitry A. Kazakov
2012-02-13 18:10                                 ` Yannick Duchêne (Hibou57)
2012-02-13 21:02                                   ` Dmitry A. Kazakov
2012-02-14  9:08                                     ` Yannick Duchêne (Hibou57)
2012-02-14 13:33                                       ` Dmitry A. Kazakov [this message]
2012-02-14 14:40                                         ` Yannick Duchêne (Hibou57)
2012-02-14 15:26                                           ` Dmitry A. Kazakov
2012-02-13 10:45             ` Georg Bauhaus
2012-02-13 10:59               ` Yannick Duchêne (Hibou57)
2012-02-14 10:18           ` Yannick Duchêne (Hibou57)
2012-02-14 11:51             ` Yannick Duchêne (Hibou57)
2012-02-14 22:21               ` Manuel Collado
2012-02-15  4:09                 ` Simon Wright
2012-02-15  6:13                   ` Niklas Holsti
2012-02-15 11:26                     ` Yannick Duchêne (Hibou57)
2012-02-15 11:39                     ` Georg Bauhaus
2012-02-15 11:47                       ` Georg Bauhaus
2012-02-15  6:30                   ` J-P. Rosen
2012-02-15  8:36                     ` Simon Wright
2012-02-15 22:56                     ` Robert A Duff
2012-02-15 11:27                   ` Yannick Duchêne (Hibou57)
2012-02-15 11:43                     ` Georg Bauhaus
2012-02-15 12:33                       ` Georg Bauhaus
2012-02-15 12:55                         ` Yannick Duchêne (Hibou57)
2012-02-15 17:30                           ` Georg Bauhaus
2012-02-09 22:33 ` Simon Wright
2012-02-09 22:35 ` J-P. Rosen
2012-02-10 14:38   ` Yannick Duchêne (Hibou57)
2012-02-10  9:47 ` Mart van de Wege
2012-02-10 14:24   ` Yannick Duchêne (Hibou57)
2012-02-13  3:02     ` BrianG
2012-02-10 12:19 ` Brian Drummond
2012-02-10 14:22   ` Yannick Duchêne (Hibou57)
2012-02-10 19:16   ` Jeffrey Carter
2012-02-11 16:31 ` Martin Dowie
2012-02-16 17:44 ` Convention for naming of anything Yannick Duchêne (Hibou57)
2012-02-17 19:46   ` Yannick Duchêne (Hibou57)
2012-02-17 21:53     ` Manuel Collado
2012-02-17 22:12       ` Yannick Duchêne (Hibou57)
2012-02-17 23:52   ` Adam Beneschan
2012-02-18  0:24     ` Yannick Duchêne (Hibou57)
2012-02-18  0:50       ` Yannick Duchêne (Hibou57)
2012-02-18 22:53         ` BrianG
2012-02-19 11:16           ` Simon Wright
2012-03-06  0:36             ` Randy Brukardt
2012-02-18 11:32   ` Georg Bauhaus
2012-02-18 13:02     ` Yannick Duchêne (Hibou57)
2012-02-19 18:07   ` Phil Clayton
2012-02-19 21:53     ` Yannick Duchêne (Hibou57)
2012-02-20  0:21       ` Phil Clayton
replies disabled

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