I'm creating a static helper class for web services I'm writing. I'm tapping into the API of Telligent and therefore creating these Telligent "service" objects that allow me to do things with the platform. For example, I'm creating a MembershipSerice object in my helper class so I can do membership stuff with the same object. In my helper class I have a property with a getter that creates a new one of these objects:
private static MembershipService _MembershipService {
get {
return new MembershipService(path, usr, pwd);
}
}
And then I have a method that returns that property:
public MembershipService getMembershipService() {
return _MembershipService;
}
Does that mean since the property is static that the new object created in the getter is only created once? Also, in terms of coding style, would it just be better to make the property public and therefore the method would be unnecessary.
Or... would it be better to just create the object as a private variable and return it via the public method:
private static MembershipService _mbrSvc = new MembershipService(path, usr, pwd);
public MembershipService getMembershipService() {
return _mbrSvc;
}
// then called elsewhere by me via:
MembershipService svc = MyHelperClass.getMembershipService();
If you have any thoughts on the style of how I set this up so its efficient and performs well, please let me know.
Does that mean since the property is static that the new object created in the getter is only created once?
No, because you have
new MembershipService(path, usr, pwd);
inside the getter, regardless of _MembershipService
being declared static
a new instance will be created on every invocation. All that static
means in this context is that you can invoke the method without having an instance of the defining class.
As far as commenting on the style, well, it really depends on what you want to do. Do you want a single instance? If so, create a static member variable _mbrSvc
and return that from the getter:
private static MembershipService _mbrSvc = new MembershipService(path, usr, pwd);
private static MembershipService _MembershipService {
get {
return _mbrSvc;
}
}
Otherwise, as it is is fine.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With