“拨打电话”&ndquo;功率原理(又名?)
作为设计师,我喜欢提供满足功率/简单平衡的接口。例如,我认为LINQ设计者遵循这一原则,因为它们提供了点符号和查询符号。第一个更强大,但第二个更容易阅读和遵循。如果您不同意我对LINQ的评估,请尝试看看我的观点; LINQ只是一个例子,我的帖子不是关于LINQ。
我把这个原则称为“拨号电源”。但我想知道别人怎么称呼它。当然有人会说“KISS”是常用术语。但我认为KISS是一个超集,或者是“消费主义”的实践。再次使用LINQ作为我的例子,在我看来,一个总是尝试使用查询符号而不是点符号的程序员团队正在练习KISS。因此,LINQ设计师实践了“可拨号功率”,而LINQ消费者实践了KISS。两人一起创作美妙的音乐。
编辑我会举另一个例子。想象一个具有两个签名的记录工具,允许两种用途:
void Write(string message);
void Write(Func<string> messageCallback);
这两个签名的目的是满足这些需求:
//Every-day "simple" usage, nothing special.
myLogger.Write("Something Happened" + error.ToString() );
//This is performance critical, do not call ToString() if logging is
//disabled.
myLogger.Write( () => { "Something Happened" + error.ToString() });
这些过载表示“可拨号电源”,因为消费者可以选择简单的界面或强大的界面。喜欢KISS的消费者将在大多数时间使用更简单的签名,并且在需要电源时将允许“忙碌”的签名。这也有助于自我记录,因为强大的签名的使用告诉读者代码是性能关键的。如果记录器只有强大的签名,那么就没有“可拨号功率”。
所以这就完整了。我很高兴保留自己的“拨号电源”硬币,如果还没有,但我不禁想到我错过了这种做法的明显名称。
附:另一个相关但与“可拨电源”不同的例子是Scott Meyer的原则“使接口易于正确使用,并且难以正确使用”。
没有找到相关结果
已邀请:
3 个回复
拭十年
迪擅哨乘傅
乏摩纶誊伟