Geo*_*Geo 5 java design-patterns null-object-pattern
我最近在Null对象设计模式上观看了这个youtube教程.即使它有一些错误:例如NullCar没有做任何事情会产生无限循环,这个概念得到了很好的解释.我的问题是,当可以为null的对象具有getter并在代码中使用时,您会怎么做?你怎么知道默认返回哪个值?或者我应该在所有对象中实现此模式?如果我需要返回字符串或基元怎么办?我是从Java角度谈论的.
编辑:我不会交易空对象测试默认值测试?如果没有,为什么不呢?
Null对象的目标是避免在代码中使用Null引用.Null Object getter返回的值取决于您的域.零或空字符串通常是合适的.
如果我们将Null Object模式转换为现实生活,那么你所问的就像问" 没有人多大了? ".
也许你的设计可以改进,因为你似乎不遵循告诉,不要问原则.
编辑:当对象将行为委托给另一个对象时(例如在策略或状态设计模式中),通常使用Null对象设计模式 ; 正如Tom Hawtin - tackline评论的那样, 对返回值的对象使用特殊情况对象.
据我所知,这个想法是空对象的值尽可能接近“无”。不幸的是,这意味着您必须自己定义它。举个例子,当我无法传递空字符串时,我个人使用“”,空对象编号对我来说是-1(主要是因为默认情况下大多数数据库序列从1开始,我们将它们用于项目id:sa很多所以-1是死赠品,它是一个空对象),与列表/地图/集它是Collections.EMPTY_SET,EMPTY_MAP或EMPTY_LIST等等。如果我有自定义类,我必须从中创建一个空对象,我会从中删除所有实际数据,看看它会将我带往何处,然后应用我刚才提到的内容,直到它为“空”。
所以你真的不“知道”默认返回哪个值,你只需要自己决定。
| 归档时间: |
|
| 查看次数: |
7081 次 |
| 最近记录: |