Singleton Object

  • Thread starter Thread starter Srini
  • Start date Start date
S

Srini

Hi ,
Can anyone tell me when I can use singleton pattern. Will
it be good for implementing the dataaccess Layer. Will it
be usefull for the buisness object layer . Could you give
me a practicle example for using the singleton object.

Regards,
Srini
 
Srini said:
Hi ,
Can anyone tell me when I can use singleton pattern. Will
it be good for implementing the dataaccess Layer. Will it
be usefull for the buisness object layer . Could you give
me a practicle example for using the singleton object.

Regards,
Srini

For dataaccess you probably want to use static methods, so NO instance.
A singleton could be used to hold configuration information that should not
change (much).

Hans Kesting
 
Singletons are most useful for Application settings, where you want the
object instantiated for the app and any changes in settings affect all
users.You could put your connection settings in a singleton, for example.

A data layer can be implemented as Static methods, ala the Microsoft Data
Access Application Block, but a Singleton is not a good idea unless everyone
is accessing the same exact data in the same exact manner, or you do not
mind if another person alters someone else's data access path. As this is
not a normal situation, this is not a good place for a singleton pattern.

--
Gregory A. Beamer
MVP; MCP: +I, SE, SD, DBA

**********************************************************************
Think Outside the Box!
**********************************************************************
 
Hello

I usually use Singletons when I want my singleton object to implement some
interface.
For example in the code below I can have a singleton object of datatype
IDbCustomerManager that can be either SQLCustomerManager or
AccessCustomerManager. This makes switching between Access and SQL easy. If
I don't need this feature I use static methods, fields and properties.

interface IDbCustomerManager{
void AddCustomer(Customer cust);
}

class SqlCustomerManager : IDbCustomerManager {
void AddCustomer(Customer cust) { // Add customer to a SQL server
database }
}
class AccessCustomerManager : IDbCustomerManager {
void AddCustomer(Customer cust) { // Add customer to an Access
database }
}

Best regards,
Sherif
 
Back
Top