Singleton Object

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
 
H

Hans Kesting

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
 
C

Cowboy \(Gregory A. Beamer\)

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!
**********************************************************************
 
S

Sherif ElMetainy

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
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,769
Messages
2,569,580
Members
45,055
Latest member
SlimSparkKetoACVReview

Latest Threads

Top