首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >这种编程技术叫什么?

这种编程技术叫什么?
EN

Software Engineering用户
提问于 2017-04-06 19:00:05
回答 2查看 937关注 0票数 13

在一次采访中,我在做对编程时偶然发现了这种编程技术,但是在google上找不到它的名字。

首先编写使用变量的表达式,然后编写计算变量的代码。

要在这里使用一些示例代码:

代码语言:javascript
复制
private bool ValidPolicyNumber(string policyNumber) 
{
    var hasExpectedPrefix = policyNumber.Substring(0,5) == "POLIC";
    var followedBy7Digits = Regex.IsMatch(policyNumber.Substring(6,7), "^[0-9]{7}$");
    var hasLengthOf12 = policyNumber.Length == 12;

    return hasExpectedPrefix && followedBy7Digits && hasLengthOf12;
}

当使用我提到的技术编写这个函数时,首先编写最后一行return hasExpectedPrefix && followedBy7Digits && hasLengthOf12;,然后编写前面的3行。

我能找到的最接近的技术是“一厢情愿的想法”,这是来自SICP的,但这与调用稍后要实现的函数有关,而不是使用稍后要初始化的变量。

EN

回答 2

Software Engineering用户

回答已采纳

发布于 2017-04-06 19:42:32

这只是功能成分。上的一个变化

证人:

代码语言:javascript
复制
private bool ValidPolicyNumber(string policyNumber) 
{
    return hasExpectedPrefix(policyNumber) 
        && followedBy7Digits(policyNumber) 
        && hasLengthOf12(policyNumber);
}

private bool hasExpectedPrefix(string policyNumber)
{
    return policyNumber.Substring(0,5) == "POLIC";
}

private bool followedBy7Digits
{
    return Regex.IsMatch(policyNumber.Substring(6,7), "^[0-9]{7}$");
}

private bool hasLengthOf12
{
    return policyNumber.Length == 12;
}

唯一真正的区别是,您的版本将较小函数的计算结果合并到一个功能范围中,这就是您想要的结果,除非较小的函数表达式打算在其他地方重复使用。

票数 13
EN

Software Engineering用户

发布于 2017-04-06 21:02:49

这可能只是来自Clean (这本书)的建议,当功能分解(正如Robert解释的那样)由于其本身无法重用而导致的功能不适用时使用。

但是,如果您想了解有关它的技术,Kent Beck的“图书实现模式”将此技术命名为“解释局部变量(着重于我的)”:

局部变量局部变量只能从声明点到作用域结束时才能访问。遵循尽可能少传播信息的原则,在使用局部变量之前,在最内部可能的范围内声明局部变量。局部变量有几个常见的角色:

  • 收集器:收集信息供以后使用的变量。通常,收集器的内容作为函数的值返回。当返回收集器时,将其命名为结果或结果。
  • 计数:收集其他对象计数的特殊收集器。
  • 说明:如果您有一个复杂的表达式,将表达式的位赋值给局部变量可以帮助读者导航复杂性: int top= .;int left= .;int height= .;int bottom= .;返回新矩形(顶部、左、高、宽);虽然解释局部变量在计算上并不必要,但解释局部变量有助于实现否则会是一个长而复杂的表达式。
票数 9
EN
页面原文内容由Software Engineering提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://softwareengineering.stackexchange.com/questions/345701

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档