On 1/4/06, Allen Gilliland <[EMAIL PROTECTED]> wrote: > On Wed, 2006-01-04 at 15:22, David M Johnson wrote: > > There's no requirement that they be singletons, but there is some > > cost to instantiating a RollerImpl in terms of object creation and > > reading the Hibernate mapping files is costly, so we don't want to do > > that more than once if we can help it. > > right. the Roller object should probably be a singleton, but I was > talking more about calls to roller.getXXXManager(). I think those > methods could actually construct a new XXXManagerImpl instance to > return, rather than maintaining a reference to a single instance.
I don't see any harm in making Managers and DAOs (don't think we have any) as singletons. As long as you're not maintaining state in class-level variables, it shouldn't be a problem, should it? This is the pattern that Spring advocates (every bean is a singleton by default) and it seems to work pretty well. Matt > > -- Allen > > > > > - Dave > > > > > > On Jan 4, 2006, at 5:12 PM, Allen Gilliland wrote: > > > > > i've been wondering, is there a reason why all of our manager objects > > > are restricted to singletons? the way the RollerImpl and > > > HibernateRollerImpl classes keep a reference to only a single > > > instantiation of each manager class seems strange to me. most, if not > > > all, of those classes do not maintain any state and should be safe for > > > multiple instantiations, so is there a reason why we use singletons > > > instead? > > > > > > my main worry is that our current manager classes all seem to have > > > public constructors, so if they really *should* be singletons then we > > > aren't really enforcing that. anyone who wants to can simply > > > construct > > > a new HibernateWeblogManagerImpl() rather than using the Roller > > > interface. i think that if a class needs to be a singleton then it > > > should have a private constructor and a public getInstance() method to > > > ensure that the class cannot be instantiated more than one time. > > > > > > this isn't causing any problems, but i noticed it as i was working on > > > the new ReferrerQueue which is required to be a singleton and i just > > > thought i'd bring it up as a question of coding practices. > > > > > > -- Allen > > > > > > >
