gre*_*emo 1 methods design-patterns programming-languages call
一般来说,在呼叫者应保证形成良好的数据传送到所调用的方法(因此所调用的方法假定数据始终有效)或是称为应该携带数据验证方法?每种方法的优缺点是什么?
this.data = user.input;
// Caller check data
if (!this.data) throw new Exception("Data cannot be null.");
obj.consume(this.data);
public void consume(data)
{
// Called check data
if (!data) throw new Exception("data cannot be null.");
}
Run Code Online (Sandbox Code Playgroud)
面向外部(公共,受保护,导出等)方法应验证其输入,因为未知的未来呼叫者可以调用它们.对于面向内部(私有,内部,内部等)方法,这不是必需的,因为调用者在您的控制之下并且可以假设知道它正在做什么.