Articles → .NET DESIGN PATTERN → Null Object Design Pattern
Null Object Design Pattern
Scenario
public MemberEntity GetMemberInformation(int memberId){}
public class MemberEntity {
private int _Id;
private string _FullName;
private string _Email;
public int Id {
get {
return _ Id;
}
set {
_ Id = value;
}
}
public string FullName {
get {
return _ FullName;
}
set {
_ FullName = value;
}
}
public string Email {
get {
return _ Email;
}
set {
_ Email = value;
}
}
}
public MemberEntity GetMemberInformation(int memberId) {
DataSet userInformationDataSet;
SQLServer obj;
MemberEntity memberEntityObject = null;
userInformationDataSet = obj.GetResultSet(query);
if (userInformationDataSet != null) {
if (userInformationDataSet.Tables.Count > 0) {
if (userInformationDataSet.Tables[0].Rows.Count > 0) {
memberEntityObject = new MemberEntity();
// Code to set the value into entity properties
}
}
}
return memberEntityObject;
}
Null Object Design Pattern
private class NullMemberEntity: MemberEntity {
public override int Id {
get {
return 0;
}
}
public override string FullName {
get {
return string.Empty;
}
}
public override string Email {
get {
return string.Empty;
}
}
}
public static readonly MemberEntity NULL = new NullMemberEntity();
public class MemberEntity {
public static readonly MemberEntity NULL = new NullMemberEntity();
private int _Id;
private string _FullName;
private string _Email;#endregion
public MemberEntity() {
//
// TODO: Add constructor logic here
//
}
public virtual int Id {
get {
return _Id;
}
set {
_Id = value;
}
}
public virtual string FullName {
get {
return _ FullName;
}
set {
_ FullName = value;
}
}
public virtual string Email {
get {
return _ Email;
}
set {
_ Email = value;
}
}
private class NullMemberEntity: MemberEntity {
public override int Id {
get {
return 0;
}
}
public override string FullName {
get {
return string.Empty;
}
}
public override string Email {
get {
return string.Empty;
}
}
}
}
public MemberEntity GetMemberInformation(int memberId) {
DataSet userInformationDataSet;
SQLServer obj;
MemberEntity memberEntityObject = MemberEntity.NULL;
userInformationDataSet = obj.GetResultSet(query);
if (userInformationDataSet != null) {
if (userInformationDataSet.Tables.Count > 0) {
if (userInformationDataSet.Tables[0].Rows.Count > 0) {
memberEntityObject = new MemberEntity();
// Code to set the value into entity properties
}
}
}
return memberEntityObject;
}