CSC/ECE 517 Fall 2007/wiki1b 6 aa: Difference between revisions
No edit summary |
No edit summary |
||
Line 4: | Line 4: | ||
http://www.ruby-doc.org/stdlib/libdoc/singleton/rdoc/index.html | http://www.ruby-doc.org/stdlib/libdoc/singleton/rdoc/index.html | ||
---- | ---- | ||
Example | |||
Let's take the example of the Earth. | == '''Example''' == | ||
Let's take the example of the Earth. Because we only have one earth,it is appropriate to implement the Earth class in singleton.In side the class, currentCondition describe the earth's current condition. | |||
Ruby Implementation | Ruby Implementation | ||
Line 58: | Line 60: | ||
} | } | ||
</pre> | </pre> | ||
== '''Test '''== |
Revision as of 23:01, 30 September 2007
Take a case of the Singleton pattern and implement it as succinctly as possible in Ruby and Java.Compare the two implementations in terms of clarity and succinctness.The example should be a "real-world" example. While it may be grossly oversimplified for the purpose of illustration, it should not be totally contrived (i.e., should not raise the question, Why would anyone ever want to do that?).
http://www.beginner-java-tutorial.com/singleton.html http://www.ruby-doc.org/stdlib/libdoc/singleton/rdoc/index.html
Example
Let's take the example of the Earth. Because we only have one earth,it is appropriate to implement the Earth class in singleton.In side the class, currentCondition describe the earth's current condition.
Ruby Implementation
require 'Singleton' class Earth include Singleton # include singleton mixin attr_accessor :currentCondition end
Java Implementation
public class Earth { private Earth() { // override the contructor to make it private } private static Earth ref; // make the method thread safe public synchronized static Earth getEarth() { if (ref == null) // lazy initialization ref = new Earth(); return ref; } public Object clone() throws CloneNotSupportedException { throw new CloneNotSupportedException(); } private String currentCondition="I was beatiful and clean"; public String getCurrentCondition(){ return currentCondition; } public void setCurrentCondition(String str){ currentCondition=str; } }