如果我在客户端库中有一个方法,例如,将某个状态设置为有限数量的状态之一,那么为每个可能的状态编写包装器方法是不错的做法,或者允许用户只将他们想要的状态作为参数传递?
例如:
def set_success_status(commit):
_set_status('success', commit)
def set_failure_status(commit):
_set_status('failure', commit)
def _set_status(status, commit):
# some logic to actually set the status
答案 0 :(得分:2)
如果状态有任何影响,如果没有正确分配给其中一个有限的可能性,我会推荐多个包装方法;但是,如果状态纯粹是信息性的,并且不作为未来陈述的基础,那么仅仅具有常规set_status(status, commit)
功能就足够了。
应用多包装方法可能有很多原因,其中最明显的是客户端错误预防,除了帮助客户端查看函数自动完成中的所有选项,而不必查找不同的{{ 1}}可供使用的选项。此外,如果您需要更改文字status
字符串,则可以通过保持函数名称相同而不中断任何客户端。
最后,它归结为确切的情景,并遵循项目中当前设定的做法。我不知道多个包装器方法如何可以造成任何伤害,并且它将每个选项固化为它自己的实体(这是合理的,因为它们是有限的选项),允许您更灵活地应用每个status
。