Stu*_*ife 2 web-services coding-style
今天出现了一个有趣的讨论,围绕着一个带有标志的方法和两个方法对于每个标志状态的概念.哪个更有意义,为什么?
void Submit(object data, bool isDraft);
Run Code Online (Sandbox Code Playgroud)
要么
void Submit(object data);
void SubmitAsDraft(object data);
Run Code Online (Sandbox Code Playgroud)
我倾向于后者,每个操作都明确指出交易的执行情况.
哪个更有意义,是否存在众所周知的规则或模式?
编辑:
假设方法通过SOAP服务作为操作公开,并且OO概念不一定适用.虽然OO是服务背后的实现.
小智 12
如果您使用单个函数,请不要使用bool,请使用枚举:
enum DocType { Draft, Final };
void Submit(object data, DocType type );
Run Code Online (Sandbox Code Playgroud)
这有两个主要优点 - 它是在呼叫站点自我记录:
Submit( mydata, Draft );
Run Code Online (Sandbox Code Playgroud)
如果您发现有两种以上的文档类型(或状态),它会自然地延伸.
Wim*_*ink 12
我会这样做:
void Submit(object data) { _Submit(data, false); }
void SubmitAsDraft(object data) { _Submit(data, true); }
(private) void _Submit(object data, bool isDraft);
Run Code Online (Sandbox Code Playgroud)
但那只是我......
哪一个更具可读性?
Submit(data, true); // true what?
// vs
SubmitDraft(data);
Run Code Online (Sandbox Code Playgroud)
我认为这里的答案是使用显式单独操作,如果您的编程语言不支持关键字参数,例如
Submit(data, isDraft: true);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
242 次 |
| 最近记录: |