代码复审

给结对伙伴叶露婷的代码复审:

1.变量命名存在些许问题,尽量不要使用拼音,如果需要按照中文意思命名可以采用英语。

1 public void dictionarystore()

2 {

3 String temp;

4 count jishu;

5 

6 foreach (Object o in str)

7 {

8 temp = o.ToString().ToLower();

9 if (table.ContainsKey(temp))

10 {

11 jishu = table[temp];

12 jishu.setnum();

13 if (jishu.getdanci().CompareTo(o.ToString()) < 0)

14 {

15 jishu.setdanci(o.ToString());

16 }

17 }

18 else

19 {

20 jishu = new count(o.ToString(), 1);

21 table.Add(temp, jishu);

22 }

23 }

24 

25 

26 }

27 }

 


2.使用了过多的类,但是这些类的存在没有很大的实际意义,本来只有两百行的代码分成这么多个类有些繁琐,可以将一些功能比较薄弱的类归并到其他的类中实现其功能。比如下面这代码的功能是获取文件中的内容,完全可以将内容的获取和分割放在一个类中,这应该是属于同一种处理,也是同一个对象应该提供的功能。不要将一些杂乱的功能归为一个类。面向对象不是简单的分割,而是有原因的。合理确定对象,这样在以后写大型程序的时候能够更易看懂更好管理。

1 public void dirscanner(String dir)

2 {

3 String[] allfile = null;

4 String[] alldirectory = null;

5 if (!Directory.Exists(dir) && !File.Exists(dir))

6 {

7 Console.WriteLine("该路径无效");

8 Environment.Exit(0);

9 }

10 else if (Directory.Exists(dir))

11 {

12 allfile = Directory.GetFiles(dir);

13 alldirectory = Directory.GetDirectories(dir);

14 for (int i = 0; i < allfile.Length; i++)

15 {

16 dirscanner(allfile[i]);

17 }

18 for (int i = 0; i < alldirectory.Length; i++)

19 {

20 dirscanner(alldirectory[i]);

21 }

22 }

23 

24 String houzhui = dir.Substring(dir.LastIndexOf(".") + 1);

25 if (houzhui == "txt" || houzhui == "cpp" || houzhui == "h" || houzhui == "cs")

26 {

27 String text = File.ReadAllText(dir);

28 str.Append('-' + text);

29 }

30 }

31 }

 


3.这里的dictionary的值对的值得类型为一个自己定义的类,有些浪费空间。可以考虑一下还有没有其他的方式,能够同时兼顾时间和空间。

1 public void dictionarystore()

2 {

3 String temp;

4 count jishu;

5 

6 foreach (Object o in str)

7 {

8 temp = o.ToString().ToLower();

9 if (table.ContainsKey(temp))

10 {

11 jishu = table[temp];

12 jishu.setnum();

13 if (jishu.getdanci().CompareTo(o.ToString()) < 0)

14 {

15 jishu.setdanci(o.ToString());

16 }

17 }

18 else

19 {

20 jishu = new count(o.ToString(), 1);

21 table.Add(temp, jishu);

22 }

23 }

 


4.时间效率方面还行,使用了dictionary很好的改善了时间效率,对文件内容的处理使用了正则表达式和spilt分割,都很得当。功能的实现也很独立,对变量的命名总体上还是合适的,代码比较容易读懂。

你可能感兴趣的:(代码)