重构之替换算法(Substitute Algorithm)
完美,是用来追求的,不然怎么叫追求完美呢{:2_27:}。
人生,我们希望是完美的;工作,我们希望是完美的;另一半,我们也希望是完美的;可以说完美的东西谁都喜欢,世上是否真的会存在完美的东西我不知道,但我们可以不断的去追求完美,不断的让自己希望的事物接近完美。我们平时编写代码也一样,谁不希望自己写的代码是最好的、最完美的呢?可扩展性好、可读性高的代码会让人赏心悦目。
怎样才能让自己的写的代码越来越好呢?怎样才能让别人看到我们的代码会觉的赏心悦目呢?
我们只有不断的优化我们的代码,不断的让我们的代码可读性提高,这样才可能让我们写出好的代码,才会赏心悦目。今天跟大家讲的这种重构手法,就是让我们不断的不断的去完善我们的代码,让我们的代码更接近于完美。
替换算法(Substitute Algorithm),从字面上我们就能理解,就是替换原有的算法。我们先来看两段代码
public string foundPerson(string [] people)
{
for (int i = 0; i < people.Length; i++)
{
if (people.Equals("Don"))
{
return "Don";
}
if (people.Equals("John"))
{
return "John";
}
if (people.Equals("Kent"))
{
return "Kent";
}
}
return "";
}
public string foundPerson(string[] people)
{
string[] sArrty = new string[] { "Don", "John", "Kent" };
for (int i = 0; i < people.Length; i++)
{
if (sArrty.Contains(people))
return people;
}
return "";
}上面两段代码功能是一样的,处理的逻辑也是一样的,但如果让你选你会选择哪一段呢?我会毫不犹豫的选择第二段,第二段不但看起来更简洁,而且可扩展性也比第一段好。这就是替换算法的妙处,我们可以把一个可扩展性低,可读性差的代码给替换掉;前提是你想到了更好的实现方式,更好的处理方法,更简洁明了的逻辑,你都可以把原来的函数给替换掉。不过,有一点大家要注意,你在使用此重构手法之前,请先确定自己已经尽可能的分解了原函数。替换一个巨大而复杂的算法是非常困难的,我们只有先将其分解为较简单的函数,然后才能更有把握的进行替换工作。
参考文献
重构——改善既有代码的设计 【美】Martin Fowler 著
熊节 译
+1
页:
[1]