zoukankan      html  css  js  c++  java
  • 空对象模式(Null Object Pattern)

    空对象模式:用一个空对象来取代null实例的检查,空对象实现一个不做任何动作的关系。(消除如if(Object == null) 这样的检查null实例代码)

    例子:

    public abstract class Duck {
        public String name;
        public abstract void getName();
    }
    
    public class ConcreteDuck extends Duck {
        public ConcreteDuck(String name) {
            this.name = name;
        }
        public void getName() {
            System.out.println("ConcreteDuck");
        }
    }
    
    public class NullDuck extends Duck {
        public void getName() {
        }
    }
    
    public class Client {
        public static final String[] names = {"A","B","C"};
        public static Duck getDuck(String name) {
           for(int i = 0; i < names.length;i++) {
                if(name[i].equalsIgnoreCase(name)) {
                     return new ConcreteDuck(name);
                }
           }
           return new NullDuck();
        }
        public static void main(String[] args) {
             Duck d1 = new Client.getDuck("A");
             Duck d2 = new Client.getDuck("D");
             System.out.println(d1.getName());
             System.out.println(d2.getName());//没有name=D的Duck,空对象的getName方法不打印字符串
        }
    }

     如果要求的对象不存在,不是返回null,而是返回空对象,这样代码会比使用条件判断更加"优雅"。

  • 相关阅读:
    获取css信息
    html嵌套规则
    js获取ip地址
    match excel test search replace 用法
    js 宽和高
    判断类型 从零开始系列
    js随机数 从头开始系列
    苹果自带拼音转换方法
    iOS GCD 拾遗
    iOS用户响应者链的那些事儿
  • 原文地址:https://www.cnblogs.com/13jhzeng/p/5589401.html
Copyright © 2011-2022 走看看