How To Singleton Pattern Using Interfaces?
Jul 5, 2010
I am working on creating a customized UI composite control. This control would be a container to several other custom controls.As a first step, i am creating the container UI using a singleton pattern. This is because at any point in time only one isntance of this container is allowed to be created. This is fine.Now i want to practice interface based desgin. So i introduced a sinple interface calleD IdesignSurface which has two properties. I would like my singleton class to implement this interface,so i tried something like this and got an error saying "end of line
NotInheritable
Class DesignSurface
implements IDesignSurface
[code]......
View 2 Replies
ADVERTISEMENT
May 10, 2012
I am trying to create an interface and then about 3 or 4 singleton classes that would be accessed via the interface.I know how to get interfaces to work and I know how to create concrete singleton classes and access them via GetInstance(). But when I put the two together, failure results.My problem is in the GetInstance method of the concrete singletons as in
Public Class MovingList
implements ISelectedList
[code]....
ISelectedList is the interface. This fails because ISelectedList.GetInstance is not of the type MovingList. Plus there is a problem with the use of Shared that I think is solved by simply deleting it (interfaces implicitly share).I can't define the type of ISelectedList.GetInstance because each of my singleton classes is of a different type even though they implement exactly the same properties and methods.How best to implement such singleton classes? I could do away with the interface and simply deal directly with the concrete singletons but that feels like bad practice. Programming to an abstraction not an implementation and all that.
View 6 Replies
Jul 23, 2010
I am normally a c# programmer but am now working in VB for this one project when I use to set up a singleton class I would follow the Jon Skeet model
public sealed class Singleton
{
static Singleton instance = null;
static readonly object padlock = new object();
[code]....
I get StackTracker.Instance.Instance and it keeps going, while it is not the end of the world it looks bad.is there a way in VB to hide the second instance so the user can not recursively call Instance?
View 1 Replies
Oct 16, 2009
Im trying to Implement the Singleton Pattern and im wondering if this is "Thread Safe" or if I am going to have to explicitly perform a SyncLock on the object instance? Example:
Public NotInheritable Class SingleTon
Private Shared _singleton As SingleTon
Private Sub New()
[Code].....
I tried it both ways, using the SyncLock and without, just not sure which one to be using?
View 18 Replies
Apr 16, 2011
I have a table, Users, with a related child table, UserSecurityGroups. In my GUI, the operator would select a user from a list. The program would retrieve the user record and allow the operator to edit the user data in one form. The operator could also edit the UserSecurityGroups of this user on another form.
I am considering using a singleton class for user instance retrieval and persistance back to the database. If this is a good practice, I want to use this with many other tables in my DB. My question is: Is this a good practice? What pitfalls am I missing? What would you recommend as an alternative? Would your recommendation change since I also have tables with three or four levels of relations (as opposed to two in the example above)?
Here is my proposed code:
Imports System.Data.Linq
Public Class UserConduit
Implements IDisposable
[code]....
View 1 Replies
Aug 17, 2010
I'd like to expose some functionality via a WCF service. I can configure WCF to instantiate a class per-request but am unsure how I can get a reference to a communal singleton if I were to have some functionality to store a list of calls to a method (call it LogMethod) via WCF in memory and return that list when the GetLogs method is called
I'm aware I could use a database/the file system to pass this data back an forth but in many cases, that seems to be overkill. Edit: It seems that nobody has a clear answer - I can't believe this is complex. Am I missing something obvious?
View 2 Replies
Mar 18, 2010
So I've been doing some research on the singleton factory design pattern, and I am wondering if my example implementation is correct (warning I did get carried away creating animals):
[Code]...
View 6 Replies
Nov 6, 2009
Sometimes there is a need to initialize the singleton class with some helper values. But we can't "publish" a constructor for it. What is the workaround for this?overloading the GetInstance or setting a color is not my idea. The color should be set only once. I would like to be sure that MyPainter paints ONLY with the initialized color. Any default color should ever be used.
For more clarity I provide a sample:
''' <summary>
''' Singleton class MyPainter
''' </summary>
Public Class MyPainter
[code]....
View 5 Replies
Jan 19, 2010
I have recently discovered the singleton approach to mdi child forms and I was trying to integrate this singleton stuff into my "mChildform" class but I keep getting InvalidTypeCastException when I do so. Not sure where I am messing this up.
My mChildform class inherits Form and adds a few properties that are required by all child forms. All of my other project forms inherit this mChildform as their base type instead of form.
When I go directly to one of these forms (the logs form for example) and add
[code...]
I get the exact results that I want. Naturally, since this is something I want all child forms to be able to do I try to add it to my mChildform base class.
The code compiles, but since the reference is of mChildForm type I want to cast it to my usable form class, but it throws the InvalidCastException.
[code..]
I'm not sure why I can't cast it to the other form type, but i'm hoping someone here can explain why I cannot. The Instance() check would always fail if I do not cast my instance to another one of the types.
Since my mChildForm class only holds minimal info to do any real work I have to cast it to the other type. As a workaround I can add the instance method to each new form but I would really like to get it into the base class.
View 5 Replies
Jan 26, 2009
In the Designer of my forms I usually have this for Singleton purposes.[code]Is there any hack in the IDE that would let me just press a button or something and it will automatically add the code I have above to the selected Designer?I can always type or copy/paste/modify it but I thought there could be something that I could set to just automate this redundant task.
View 7 Replies
Sep 8, 2010
I have an web application written in ASP.NET (FW 3.5) (along with some VBScript, this is a legacy app) that uses a utility class in the backend that logs error. I need to log several values that a user has entered in the front-end. Since the utility class has no access to the front end (or any HTTP services), i created a singleton class within the utility namespace that my front end UI can access and store information about the user.
I guess more specifically, I am wondering if there's a way to store session variables that can be shared across the web application and web services through a class referenced by both of the application and web services. For example, I have an error handling class that is used by both instances that required information about the user. Is there a way to create a per-session singleton to hold that information, so that my error class will have access to the user info?
View 1 Replies
Jun 11, 2009
Reading about singletons classes/pattern gave me a pretty good idea for its use. But would it be a good practice to store user related variables in properties of a thread safe singleton class so i can access them by chaining?
Example
When a user logs in several variables will be assigned to a session variable like:
Session("UserID") = reader("UserID")
Session("AccessLevels") = reader("Accesslevels")
Session("UserName") = reader("UserName")
...
Now when working on my webapplication i could always access these values by calling the session() variable, but the chance to forget the session keys or erroneous write them down is significantly. So again would it be good to store these session variables in readonly properties of singleton class so I can access them like:
MySingleton.ID
MySingleton.Accesslevels
MySingleton.UserName
View 4 Replies
Jun 27, 2012
So I took this from an example. GetInstance() is called from hundred different places in my program, and when I debug, the line "Prog = New Program" keeps getting hit for each of those calls. Which I thought was exactly what should NOT happen.. Or do I have some fundamental misunderstanding?
[Code]....
It seems the "New" sub triggers a number of calls to Program.GetInstance, before the first one completes. This is due to me earlier having lots of shared public objects in this class, which are no longer shared since the class was made singleton. And these objects, when initialized, calls the Program class for reference to other of it's objects.
View 2 Replies
Mar 8, 2011
I have an Addin for MS Excel which needs a singleton to share data amongst modules.Depending on the version of Excel (2003, 2007, 2010), and how Excel was started, it calls my addin from different, unpredictable AppDomains, which prevents the classic singleton approach.Creating a custom AppDomainManager won't work because Excel has already created the AppDomains before the addin is called.
Linking to mscoree to enumerate domains breaks the addin registration process (and I really don't want that anyway); there doesn't seem to be any other way of enumerating, so that isn't an option either.The only solution that I've found is to use remoting. Here's my test rig:
Imports System.Runtime.Remoting
Imports System.Runtime.Remoting.Channels
' Remeber to add reference to System.Runtime.Remoting DLL[code].....
Once everything is running, access to the singleton takes ~100µS, which is perfect. I can live with the ~400mS the first time each AppDomain is initialised. The problem is at startup, where the remoting invocation takes ~2.5 seconds.
View 1 Replies
Jun 6, 2011
Explain Singleton architecture of Remoting.
View 1 Replies
Nov 18, 2009
Implement singleton in a parent class.Infact what I want is that All the childs etc. should use same instance of the parent.
I have implemented singleton, Changed the scope of parent class's constructor to "Protected". But in the application when ever the new child's constructor is called i.e. "Dim abc as New Ch1()" the constructor of Parent is called (as it is Proctected and can be access from child).
View 2 Replies
Nov 18, 2009
implement singleton in a parent class. Infact what I want is that All the childs etc. should use same instance of the parent.
I have implemented singleton, Changed the scope of parent class's constructor to "Protected". But in the application when ever the new child's constructor is called i.e. "Dim abc as New Ch1()" the constructor of Parent is called (as it is Proctected and can be access from child). Which is undesired behaviour.
View 2 Replies
May 19, 2011
Testing a configuration of a Windows 7 workstation acting as a "server" and a Windows XP workstation acting as a "client" (also fails in the same way using a Windows 7 client workstation).
[Code]...
View 8 Replies
Nov 28, 2011
I have a VB.NET singleton class which implements Serializable:
Imports System.IO
Imports System.Runtime.Serialization
<Serializable()> Public Class CoordinateHistory[code].....
My problem is that I can't actually call .Serialize() on the instance of this class, like all of the examples online show. What am I doing wrong?
View 2 Replies
Aug 9, 2011
I would like to understand the Pro & Cons in using the commonly used methods via Singleton class against Shared (Static) members of a class in VB.Net. It could be in terms Time, Space complexity or best practices. I have a BankAccount class with methods doing some business logic.
GetBalance()
GetLast5Credits()
GetMiniStatement()
[code].....
View 4 Replies
Oct 16, 2009
Are Interfaces used often? Need opinions.
View 4 Replies
Mar 13, 2009
I have the following problem with MEF: Interface definition to be used by host:
Public Interface IExecuteDoSomething
Inherits IAddinSettings
Event DataReceived As EventHandler(Of DataReceivedEventArgs)
Function DoSomething() As Boolean
End Interface
[Code]...
Everything seems to work fine until the Button2_Click routine is executed, then an InvalidCastException is thrown with the info:Unable to cast object of type 'System.Collections.Generic.List1[SharedLibrary.IExecuteDoSomething]' to type 'System.Collections.Generic.List1[SharedLibrary.IAddinSettings]'.
How can i solve this problem, because the imported object implements both of the interfaces?
View 1 Replies
Dec 30, 2011
In this discussion let us discuss every usage of interfaces in .NET. Any real time examples and difficulties in using interfaces can also be discussed here.
View 6 Replies
Aug 6, 2009
Im building a game with VB.NET I designed the core of the game in form1 window But now I need menus. How can I implement this without having 5 or so windows that I show() and hide() ? Doing that slows it down a lot and uses lots of memory. I tried tabs, but I don't want the tabs to appear, just switch. Whats the best way to implement multiple interfaces?
View 1 Replies
Jul 14, 2011
Has someone a hint what I'm doing wrong in VB.Net?
Module Module1
Interface ISearch(Of T As ISearchResult)
Function ids() As List(Of T)
End Interface
[CODE]...
The third cast isn't working. Why? did I miss a oop lesson?
View 2 Replies
Sep 12, 2009
What I would like to do is make an abstract class that will hold objects in a dictionary and manage the adding/deleting/key changes of those items in the dictionary. My problem is that in order to make the class as generic as possible I declared the dictionary as dictionary(of long, of SomeInterface).The problem is when I try to pass a strongly typed dictionary in the constructor using dictionary( of long, ClassThatImplementsSomeInterface) I get a compiler error because it cannot convert to that type.
The reason I want to pass the dictionary in the abstract class's constructor is so that I can use the strongly typed dictionary in the subclass and have the abstract class manage the keys when it needs to. So how can I do something like this? Also- If there is a much better way to manage keys than what I am doing feel free to let me know, but I am much more interested in how to make this work since I have encountered this type of problem a few times before.
Here's the abstract class:
Public MustInherit Class HasChildrenKeys
Protected m_childItems As Dictionary(Of Long, IHasKey)
[code].....
View 7 Replies
Oct 20, 2011
I have a solution with multiple projects, some of the projects are written in VB, some in C#. I am wondering if there's a way to use interfaces and/or enums written in VB in C# classes? My C# code below doesn't compile, however I am able to see the interface in intellisense.
[Code]...
P.S It's a console/service application, not ASP.Net (where I know it's doable).UPD: Sorry guys, was missing a reference to the project with the interface. It's fixed now. I think the thing that in VB projects references are done slightly different than in C# confused me.
View 2 Replies
May 1, 2009
I have a program written in Visual Studio to me 3 values ( 0-255, 0-255, 0-255) to send the serial interfaces, and While assigned to the 3 values of 3 sliders together.[code...]
View 1 Replies
Nov 14, 2010
Say I have a interface called IProperties and I have a collection called colMyProperties that is a collection of IProperties. Then I have an object called clsProperty that implements the IProperty interface. Now, in my code where I add objects to the colMyProperties collection I add a bunch of clsProperty objects. so far so good.
Now when I try to access an object in the collection I can only access properties and methods of the IProperties interface, not the clsProperty object. What am I doing wrong? Do I need to cast the object?
View 2 Replies
Oct 4, 2011
I have a project that has several different interfaces (a website, a local application, and some webservices), that all use the same class library. The library is an API to a database. Some settings, like log level, database connection etc, i want to store in a single place, and I want them editable. What is the best way to accomplish this? I am concerned both about ease of editing, and ease of access for the dll, as there will be a lot of calls to it and a lot of lookups for the values. I have considered using app.config, a standalone XML file, and writing values to the registry, but I cannot find any good comparisons.
View 2 Replies