当前位置:  开发笔记 > IOS > 正文

Objective-C中的空对象模式

如何解决《Objective-C中的空对象模式》经验,为你挑选了1个好方法。

在Java中,编写以下设计非常容易:

public abstract class Pizza {
    public static final Pizza.NULL = new Pizza() {
        /* "null" implementations */
    }

    /* actual/abstract implmentations */
}

在Objective-C中获得相同效率场景的首选方法是什么?我一直无法找到关于这个主题的任何文档,我尝试了几个不同的场景static const,#define等等,但它们似乎都没有像上面的Java方法那样成功.

我想避免编写一个具有静态方法来获取单例实例的具体NullPizza类,因为它似乎更适合它作为最高级别接口的最终属性/字段.(披萨,在这种情况下.)

编辑:虽然我理解如何处理NULL模式由于Obj-C处理'nil'方法调用的独特方法,那么其他静态公共实例如Response.YES和Response.NO呢?(请参阅评论以供讨论.)



1> Jason Coco..:

在Objective-C中不需要这种类型的模式,因为消息类的nil实例不被视为运行时错误.如果该方法具有已定义的返回类型,则从消息传递nil对象定义返回(例如,在传递nil对象时返回整数的方法返回0).

推荐阅读
mobiledu2402851323
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有