Coding style 在调用者或被调用者中处理数据?
假设我有一个OO语言中的对象,名为Coding style 在调用者或被调用者中处理数据?,coding-style,Coding Style,假设我有一个OO语言中的对象,名为Man,而Man有一个属性name。如果我有一个函数向这个人问好,我应该发送man.name作为参数还是只发送man。例如,在python中: def sayHello(Man): print 'hello! ' + Man.name def sayHello2(name): print 'hello! ' + name 哪一个更好?为什么?如果您的函数需要名称,而不需要Man的其他属性,只需发送名称即可。原因是为了减少耦合(sayHello
Man
,而Man
有一个属性name
。如果我有一个函数向这个人问好,我应该发送man.name
作为参数还是只发送man
。例如,在python中:
def sayHello(Man):
print 'hello! ' + Man.name
def sayHello2(name):
print 'hello! ' + name
哪一个更好?为什么?如果您的函数需要名称,而不需要Man的其他属性,只需发送名称即可。原因是为了减少耦合(sayHello不需要知道人的属性) 如果函数需要两个或多个Man属性,则可能应该传递对象。其原理来自Martin Fowler的《重构:改进现有代码的设计》一书,称为“保留整个对象”