每个程序员都应该学会分解复杂的方法 �C 码农网



每个程序员都应该学会分解复杂的方法 �C 码农网

今天,我们要讲的重构方法为,提取方法(Extract Method)。这也是我最常用的重构方法之一。

注:虽然代码示例是用PHP写的,但相同的概念同样也适用于其他任何OOP语言。

定义

下面是Martin Fowler给出的官方定义:

如果你有一个可以组合在一起的代码段。那么将这个代码片段整合为一个方法,其方法名就用来解释该方法的目的。

我认为再也没有比这更简单的定义了。此处我唯一想强调的是,方法名。事实上,你命名方法的方式决定了你能从这种重构中受益多少。例如,methodmoveToPendingList()这个方法名就比mvToPLst()和moveToList()要好。如果你担心代码太长,那么你错了――我们的目标不是字符最少化,而是让代码更易于理解。好的命名方法能够代替你为这个方法额外添加的注释。


Read full article from 每个程序员都应该学会分解复杂的方法 �C 码农网


No comments:

Post a Comment

Labels

Algorithm (219) Lucene (130) LeetCode (97) Database (36) Data Structure (33) text mining (28) Solr (27) java (27) Mathematical Algorithm (26) Difficult Algorithm (25) Logic Thinking (23) Puzzles (23) Bit Algorithms (22) Math (21) List (20) Dynamic Programming (19) Linux (19) Tree (18) Machine Learning (15) EPI (11) Queue (11) Smart Algorithm (11) Operating System (9) Java Basic (8) Recursive Algorithm (8) Stack (8) Eclipse (7) Scala (7) Tika (7) J2EE (6) Monitoring (6) Trie (6) Concurrency (5) Geometry Algorithm (5) Greedy Algorithm (5) Mahout (5) MySQL (5) xpost (5) C (4) Interview (4) Vi (4) regular expression (4) to-do (4) C++ (3) Chrome (3) Divide and Conquer (3) Graph Algorithm (3) Permutation (3) Powershell (3) Random (3) Segment Tree (3) UIMA (3) Union-Find (3) Video (3) Virtualization (3) Windows (3) XML (3) Advanced Data Structure (2) Android (2) Bash (2) Classic Algorithm (2) Debugging (2) Design Pattern (2) Google (2) Hadoop (2) Java Collections (2) Markov Chains (2) Probabilities (2) Shell (2) Site (2) Web Development (2) Workplace (2) angularjs (2) .Net (1) Amazon Interview (1) Android Studio (1) Array (1) Boilerpipe (1) Book Notes (1) ChromeOS (1) Chromebook (1) Codility (1) Desgin (1) Design (1) Divide and Conqure (1) GAE (1) Google Interview (1) Great Stuff (1) Hash (1) High Tech Companies (1) Improving (1) LifeTips (1) Maven (1) Network (1) Performance (1) Programming (1) Resources (1) Sampling (1) Sed (1) Smart Thinking (1) Sort (1) Spark (1) Stanford NLP (1) System Design (1) Trove (1) VIP (1) tools (1)

Popular Posts