[Seaside] Application context

Ramon Leon ramon.leon at allresnet.com
Mon May 18 01:44:19 UTC 2009

> "ANComponent userRepository"
> userRepository
>        TheUserRepository ifNil: [TheUserRepository := GDRepository for:
> ANUser].
>        ^ TheUserRepository
> "ANComponent>>initialize"
> initialize
>        super initialize.
>        userRepository := ANComponent userRepository.
I agree with James but I'll be more specific, how about this...

UserRepository class>>forApp: anApp
    ^ (Repository ifNil: [Repository := Dictionary new ])
        at: anApp ifAbsentPut: [ GDRepository for: ANUser ]

    super initialize.
    userRepository := UserRespository forApp: self session baseUrl

No need to stick the repository on a component class, create a unique class
just for it, you get an automatic singleton because classes *are* singletons
and why shouldn't a user repository be its own abstraction?

Ramon Leon
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.squeakfoundation.org/pipermail/seaside/attachments/20090517/0ce329c0/attachment.htm

More information about the seaside mailing list