The null object is referenced to cancel Null Object judgment in business logic.
Class diagram:
Nullable:
package com.demo.user;public interface Nullable {boolean isNull();}
GROUP:
package com.demo.user;public class Group implements Nullable{private int groupId;private String groupName;public int getGroupId() {return groupId;}public void setGroupId(int groupId) {this.groupId = groupId;}public String getGroupName() {return groupName;}public void setGroupName(String groupName) {this.groupName = groupName;}public boolean isNull() {return true;}}
Nullgroup:
package com.demo.user;public class NullGroup extends Group {private NullGroup() {}@Overridepublic int getGroupId() {return 9999999;}@Overridepublic boolean isNull() {return false;}static Group createNull(){return new NullGroup();}}
User:
Package COM. demo. user; public class user {private int userid; private string username; private group; Public int getuserid () {return userid;} public void setuserid (INT userid) {This. userid = userid;} Public String GetUserName () {return username;} public void setusername (string username) {This. username = username;} public group getgroup () {// returns an nullgroup object return group = NULL? Nullgroup. createnull (): group;} public void setgroup (group Group) {This. Group = group ;}}
Userservice:
Package COM. demo. user; public class userservice {public void add (User user) {// obtain groupidint groupid = user. getgroup (). getgroupid (); // doing something }}
Design Mode: Null Object Mode