“拨打电话”&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的原则“使接口易于正确使用,并且难以正确使用”。     
已邀请:
如果你的“表盘”只有两个位置/等级,听起来你只是指一个外观。     
“渐进式披露。” 您可能已经熟悉该术语,因为它与用户界面一起使用 - 例如,“更多”按钮。但是,这个概念更为笼统。 来自Lidwell,Holden和Butler的“通用设计原则”:
   Progressive disclosure involves separating information into 
   multiple layers and only presenting layers that are necessary or relevant. 
    
  我把这个原则称为“可拨号”   力量“。但我想知道什么   其他人称之为。 我个人从来没有听说过“拨号电源”,我认为这不是一个行业标准术语。 在LINQ的情况下,我们将其设计称为流畅的界面。 Fluent接口的设计使得对象上的所有方法都返回与该对象相同的类型,因此方法链很容易。您在StringBuilder.Append重载,流畅的NHibernate和RhinoMocks中看到了相同的流畅设计。 在JQuery的情况下,它也使用流畅的接口进行方法链接,但我相信“查询”或“DSL”是其选择符表示法的正确名称。 (Obj-C选择器使用相同的术语,但描述完全不同的东西。) 由于它被描述为查询DSL,大多数人可以推断它将序列作为输入并返回序列作为输出。查询表示法执行与XPath大致相同的功能,具有更多的铃声和口哨声。 Hibernate HQL是一种在许多SQL方言之上的查询DSL,并且以非常肤浅的方式,正则表达式是一种查询DSL,它将字符串序列转换为一组新的字符串序列(原则上,您可以为正则表达式创建一个流畅的接口,但是它可能会让你抓住你的眼睛)。     

要回复问题请先登录注册