View · Search · Index
No registered users in community xowiki
in last 10 minutes

Re: [Xotcl] Help with singleton design pattern

From: Gustaf Neumann <>
Date: Tue, 22 Apr 2003 12:03:56 +0200

On Saturday 19 April 2003 07:40, Michael A. Cleverly wrote:
> As I'm starting to learn XOTcl, I decided to try and implement a singleton
> design pattern as an educational exercise.

 Dear Michael,

 Uwe has already answered the filter-part. To solve the singleton
 problem, there is much less code necessary. The following example
 uses a metaclass that provides an instproc "new":

Class Singleton -superclass Class
Singleton instproc new args {
  expr {[my exists instance] ?
        [my set instance] : [my set instance [next]]}

 A new singleton can be created in a declarative way, and
 all calls to "new" will return the same instance (you can
 also raise errors, if you prefer)

Singleton MyClass
puts "1. [MyClass new]"
puts "2. [MyClass new]"

 Certainly the same maechanism can be applied on "create" as well.
 In the current XOTcl version, you have to duplicate the instproc
 for "create", in the forthcoming xotcl version registering a single
 instproc on create will be sufficient (in 1.0.2, the method new
 calls directly the implementation of create, the next version
 will go through the dispatcher).

 best regards

Univ.Prof. Dr.Gustaf Neumann
Abteilung für Wirtschaftsinformatik
WU-Wien, Augasse 2-6, 1090 Wien