Null object as a singleton #50

This commit is contained in:
Ilkka Seppala
2015-04-24 22:01:08 +03:00
parent 19d653c13c
commit 89e6692ba8
4 changed files with 118 additions and 99 deletions

View File

@@ -18,14 +18,14 @@ public class App
Node root = new NodeImpl("1",
new NodeImpl("11",
new NodeImpl("111",
new NullNode(),
new NullNode()),
new NullNode()),
NullNode.getInstance(),
NullNode.getInstance()),
NullNode.getInstance()),
new NodeImpl("12",
new NullNode(),
NullNode.getInstance(),
new NodeImpl("122",
new NullNode(),
new NullNode())));
NullNode.getInstance(),
NullNode.getInstance())));
root.walk();
}

View File

@@ -1,33 +1,44 @@
package com.iluwatar;
/**
*
* Null Object implementation for binary tree node.
*
*/
public class NullNode implements Node {
@Override
public int getTreeSize() {
return 0;
}
@Override
public Node getLeft() {
return null;
}
@Override
public Node getRight() {
return null;
}
@Override
public String getName() {
return null;
}
@Override
public void walk() {
}
}
package com.iluwatar;
/**
*
* Null Object implementation for binary tree node.
*
* Implemented as Singleton, since all the NullNodes are the same.
*
*/
public class NullNode implements Node {
private static NullNode instance = new NullNode();
private NullNode() {
}
public static NullNode getInstance() {
return instance;
}
@Override
public int getTreeSize() {
return 0;
}
@Override
public Node getLeft() {
return null;
}
@Override
public Node getRight() {
return null;
}
@Override
public String getName() {
return null;
}
@Override
public void walk() {
}
}