如何解决将功能分开的行为称为什么?
| 通常,我通过许多私有函数来实现类(C#,C ++),这些私有函数除了将关注点和逻辑分开以提高可读性,可维护性和范围之外,没有其他用途。例如,如果我看到一个100行长的函数,其中有3条注释,将其分成虚拟的1/3节块,对我来说就是3个函数。因此,我将那个较大的函数分解为3个较小的函数,现在原始函数仅调用3个函数。 我不知道这种范例的名称。起初我以为可能是函数式编程或模块化编程,但事实并非如此。谁能帮我弄清楚这种范式是什么?另外,指向我可以阅读的Wikipedia文章的链接,该链接非常有用(当然,如果您告诉我范例的名称,我可以很容易地自己查找一下)。 提前致谢。解决方法
重构改变了代码而没有改变其行为。当您将代码分解为更多的方法时,这称为“重构为方法”。当您采用这些方法并将它们的行为放入许多类(这有助于每个对象/类维护单个职责)时,称为“对对象的重构”。
, 它基本上只是“重构”。
http://en.wikipedia.org/wiki/Code_refactoring
, 从现有代码中以超大方法创建一个新的,较小的方法的实际重构实践称为“提取方法”。
例
原始码
void printOwing() {
printBanner();
//print details
System.out.println (\"name: \" + _name);
System.out.println (\"amount \" + getOutstanding());
}
执行提取方法后
void printOwing() {
printBanner();
printDetails(getOutstanding());
}
void printDetails (double outstanding) {
System.out.println (\"name: \" + _name);
System.out.println (\"amount \" + outstanding);
}
如果您尝试从方法中提取的代码甚至都不属于该类的开头,那么您可以类似地使用Extract Class。
业界最著名的软件工匠之一马丁·福勒(Martin Fowler)写了一本关于重构概念的绝妙书,您可以在这里找到。本书将为您提供逐步解决方案,以解决您将需要的大部分重构。
此外,JetBrains对于几乎所有内置了非常好的重构工具的语言都可以提供非常好的IDE。它们还具有一个名为ReSharper的Visual Studio插件,它提供了一些相同的功能和优点。
, 这种做法称为重构。
重构来自于因子的数学思想。如此有效地将您的方法拆分成相同的结果。
编辑我从一开始就这样做。我将编写大量代码,并研究如何以很小的增量删除重复项。这是TDD咒语的一部分。
红色。绿色。重构以消除重复。
, 将大型功能分解为较小的功能通常称为“重构”,但是将较小的功能组合在一起的操作称为“合成”。
当您的编程语言支持函数作为一等实体时,组合功能特别强大,这意味着您可以将一个函数作为参数传递给另一个函数,该函数返回一个直到运行时才存在的新函数。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。