Archive for February 2014

Navigate to the .NET Framework source online from VS.NET IDE!

February 26, 2014

Most of you knew that Microsoft recently launched a browsable version of the .Net reference source code at http://referencesource-beta.microsoft.com.

This would help great and get us the insight over how all of the .NET code has been written. For example,
if you would want to see how String.IsNullOrEmpty() and String.IsNullOrWhiteSpace() has been implemented, here you go.

public static bool IsNullOrEmpty(String value) {
return (value == null || value.Length == 0);
}

public static bool IsNullOrWhiteSpace(String value) {
if (value == null) return true;

for(int i = 0; i < value.Length; i++) {
if(!Char.IsWhiteSpace(value[i])) return false;
}

return true;
}

Interesting, right!

Reference: Have a look @ Scott Hanselman's blog: http://goo.gl/D9jR6a

Below is the code excerpt from Scott Hanselman’s blog:
BONUS: Community Visual Studio Extension for navigating into the online .NET Framework source from VS.NET IDE.

Here’s an exciting bonus. Community member and fabulous coder Schabse Laks has created a Visual Studio extension for VS2010, 2012, and 2013! This extension sends calls to Go To Definition (or pressing F12 on a symbol) directly to the code online (when it’s .NET Framework code, not yours).

You can download this companion “Ref12” Visual Studio Extension now! Just Goto Definition on any .NET type we have source for and it’ll launch your default browser so you can explore the .NET Framework source yourself! Thanks Schabse!

Enjoy exploring!

Advertisements

Static vs. Singleton Classes – FAQ

February 22, 2014

Just I had gone through an articles over http://java.dzone.com about Static vs. Singleton Classes and related FAQ.Thought of sharing to the wordpress community.

The below excerpt is taken from the link : http://java.dzone.com/articles/singleton-design-pattern-%E2%80%93

FAQs:

Question: Why can’t we use a static class instead of singleton?
Answer:

  • One of the key advantages of singleton over static class is that it can implement interfaces and extend classes while the static class cannot (it can extend classes, but it does not inherit their instance members). If we consider a static class it can only be a nested static class as top level class cannot be a static class. Static means that it belongs to a class it is in and not to any instance. So it cannot be a top level class.
  • Another difference is that static class will have all its member as static only unlike Singleton.
  • Another advantage of Singleton is that it can be lazily loaded whereas static will be initialized whenever it is first loaded.
  • Singleton object stores in Heap but, static object stores in stack.
  • We can clone the object of Singleton but, we can not clone the static class object.
  • Singleton can use the Object Oriented feature of polymorphism but static class cannot.

Question: Can the singleton class be subclassed?
Answer: Frankly speaking singleton is just a design pattern and it can be subclassed. However it is worth to understand the logic or requirement behind subclassing a singleton class as the child class might not inherit the singleton pattern objective by extending the Singleton class. However the subclassing can be prevented by using the final keyword in the class declaration.

Question: Can there be multiple instance of singleton using cloning?
Answer: That was a good catch! What do we do now? To prevent the another instance to be created of the singleton instance we can throw exception from inside the clone() method.

Question: What is the impact if we are creating another instance of singleton using serialization and deserialization?
Answer: When we serialize a class and deserialize it then it creates another instance of the singleton class. Basically as many times as you deserialize the singleton instance it will create multiple instance. Well in this case the best way is to make the singleton as enum. In that way the underlying Java implementation takes care of all the details. If this is not possible then we will need to override the readobject() method to return the same singleton instance.

Question: Which other pattern works with Singleton?
Answer:There are several other pattern like Factory method, builder and prototype pattern which uses Singleton pattern during the implementation.

Question: Which classes in JDK uses singleton pattern?
Answer: java.lang.Runtime : In every Java application there is only one Runtime instance that allows the application to interface with the environment it is running. The getRuntime is equivalent to the getInstance() method of the singleton class.

Enjoy reading.

Courtesy: Mainak Goswami