superword中一次精彩的重构

我们先来看看需要重构的功能是一个下拉选择框,可任意选择11部词典中的一部,访问地址:http://123.56.99.179/select/dictionary-select.jsp?dict=RANDOMHOUSE,在HTML中的效果如下图所示:

superword中一次精彩的重构_第1张图片

HTML代码如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
< select  name = "dict"  id = "dict"  onchange = "update();" >
 
     < option  value = "ICIBA" >iCIBA</ option >
     < option  value = "YOUDAO" >Youdao</ option >
     < option  value = "COLLINS" >Collins</ option >
     < option  value = "WEBSTER" >Webster's</ option >
     < option  value = "OXFORD" >Oxford</ option >
     < option  value = "CAMBRIDGE" >Cambridge</ option >
     < option  value = "MACMILLAN" >Macmillan</ option >
     < option  value = "HERITAGE" >Heritage</ option >
     < option  value = "WIKTIONARY" >Wiktionary</ option >
     < option  value = "WORDNET" >WordNet</ option >
     < option  value = "RANDOMHOUSE"  selected = "selected" >RandomHouse</ option >
 
</ select >

 

我们接下来看看最初的JSP代码是如何实现这个功能的:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
<%@ page contentType= "text/html;charset=UTF-8"  language= "java"  %>
<%@ page  import = "org.apdplat.superword.tools.WordLinker"  %>
<%@ page  import = "org.apdplat.superword.tools.WordLinker.Dictionary"  %>
 
         <select name= "dict"  id= "dict"  onchange= "update();" >
     <%
         if  (Dictionary.ICIBA==WordLinker.getValidDictionary(request.getParameter( "dict" ))) {
     %>
             <option value= "ICIBA"  selected= "selected" >爱词霸</option>
             <option value= "YOUDAO" >有道</option>
             <option value= "COLLINS" >柯林斯</option>
             <option value= "WEBSTER" >韦氏</option>
             <option value= "OXFORD" >牛津</option>
             <option value= "CAMBRIDGE" >剑桥</option>
             <option value= "MACMILLAN" >麦克米伦</option>
             <option value= "HERITAGE" >美国传统</option>
             <option value= "WIKTIONARY" >维基词典</option>
             <option value= "WORDNET" >WordNet</option>
             <option value= "RANDOMHOUSE" >RandomHouse</option>
     <%
     else  if  (Dictionary.YOUDAO==WordLinker.getValidDictionary(request.getParameter( "dict" ))) {
     %>
             <option value= "ICIBA" >爱词霸</option>
             <option value= "YOUDAO"  selected= "selected" >有道</option>
             <option value= "COLLINS" >柯林斯</option>
             <option value= "WEBSTER" >韦氏</option>
             <option value= "OXFORD" >牛津</option>
             <option value= "CAMBRIDGE" >剑桥</option>
             <option value= "MACMILLAN" >麦克米伦</option>
             <option value= "HERITAGE" >美国传统</option>
             <option value= "WIKTIONARY" >维基词典</option>
             <option value= "WORDNET" >WordNet</option>
             <option value= "RANDOMHOUSE" >RandomHouse</option>
     <%
     else  if  (Dictionary.COLLINS==WordLinker.getValidDictionary(request.getParameter( "dict" ))) {
     %>
             <option value= "ICIBA" >爱词霸</option>
             <option value= "YOUDAO" >有道</option>
             <option value= "COLLINS"  selected= "selected" >柯林斯</option>
             <option value= "WEBSTER" >韦氏</option>
             <option value= "OXFORD" >牛津</option>
             <option value= "CAMBRIDGE" >剑桥</option>
             <option value= "MACMILLAN" >麦克米伦</option>
             <option value= "HERITAGE" >美国传统</option>
             <option value= "WIKTIONARY" >维基词典</option>
             <option value= "WORDNET" >WordNet</option>
             <option value= "RANDOMHOUSE" >RandomHouse</option>
     <%
     else  if  (Dictionary.WEBSTER==WordLinker.getValidDictionary(request.getParameter( "dict" ))) {
     %>
             <option value= "ICIBA" >爱词霸</option>
             <option value= "YOUDAO" >有道</option>
             <option value= "COLLINS" >柯林斯</option>
             <option value= "WEBSTER"  selected= "selected" >韦氏</option>
             <option value= "OXFORD" >牛津</option>
             <option value= "CAMBRIDGE" >剑桥</option>
             <option value= "MACMILLAN" >麦克米伦</option>
             <option value= "HERITAGE" >美国传统</option>
             <option value= "WIKTIONARY" >维基词典</option>
             <option value= "WORDNET" >WordNet</option>
             <option value= "RANDOMHOUSE" >RandomHouse</option>
     <%
     else  if  (Dictionary.OXFORD==WordLinker.getValidDictionary(request.getParameter( "dict" ))) {
     %>
             <option value= "ICIBA" >爱词霸</option>
             <option value= "YOUDAO" >有道</option>
             <option value= "COLLINS" >柯林斯</option>
             <option value= "WEBSTER" >韦氏</option>
             <option value= "OXFORD"  selected= "selected" >牛津</option>
             <option value= "CAMBRIDGE" >剑桥</option>
             <option value= "MACMILLAN" >麦克米伦</option>
             <option value= "HERITAGE" >美国传统</option>
             <option value= "WIKTIONARY" >维基词典</option>
             <option value= "WORDNET" >WordNet</option>
             <option value= "RANDOMHOUSE" >RandomHouse</option>
     <%
     else  if  (Dictionary.CAMBRIDGE==WordLinker.getValidDictionary(request.getParameter( "dict" ))) {
     %>
             <option value= "ICIBA" >爱词霸</option>
             <option value= "YOUDAO" >有道</option>
             <option value= "COLLINS" >柯林斯</option>
             <option value= "WEBSTER" >韦氏</option>
             <option value= "OXFORD" >牛津</option>
             <option value= "CAMBRIDGE"  selected= "selected" >剑桥</option>
             <option value= "MACMILLAN" >麦克米伦</option>
             <option value= "HERITAGE" >美国传统</option>
             <option value= "WIKTIONARY" >维基词典</option>
             <option value= "WORDNET" >WordNet</option>
             <option value= "RANDOMHOUSE" >RandomHouse</option>
     <%
     else  if  (Dictionary.MACMILLAN==WordLinker.getValidDictionary(request.getParameter( "dict" ))) {
     %>
             <option value= "ICIBA" >爱词霸</option>
             <option value= "YOUDAO" >有道</option>
             <option value= "COLLINS" >柯林斯</option>
             <option value= "WEBSTER" >韦氏</option>
             <option value= "OXFORD" >牛津</option>
             <option value= "CAMBRIDGE" >剑桥</option>
             <option value= "MACMILLAN"  selected= "selected" >麦克米伦</option>
             <option value= "HERITAGE" >美国传统</option>
             <option value= "WIKTIONARY" >维基词典</option>
             <option value= "WORDNET" >WordNet</option>
             <option value= "RANDOMHOUSE" >RandomHouse</option>
     <%
     else  if  (Dictionary.HERITAGE==WordLinker.getValidDictionary(request.getParameter( "dict" ))) {
     %>
             <option value= "ICIBA" >爱词霸</option>
             <option value= "YOUDAO" >有道</option>
             <option value= "COLLINS" >柯林斯</option>
             <option value= "WEBSTER" >韦氏</option>
             <option value= "OXFORD" >牛津</option>
             <option value= "CAMBRIDGE" >剑桥</option>
             <option value= "MACMILLAN" >麦克米伦</option>
             <option value= "HERITAGE"  selected= "selected" >美国传统</option>
             <option value= "WIKTIONARY" >维基词典</option>
             <option value= "WORDNET" >WordNet</option>
             <option value= "RANDOMHOUSE" >RandomHouse</option>
     <%
     else  if  (Dictionary.WIKTIONARY==WordLinker.getValidDictionary(request.getParameter( "dict" ))) {
     %>
             <option value= "ICIBA" >爱词霸</option>
             <option value= "YOUDAO" >有道</option>
             <option value= "COLLINS" >柯林斯</option>
             <option value= "WEBSTER" >韦氏</option>
             <option value= "OXFORD" >牛津</option>
             <option value= "CAMBRIDGE" >剑桥</option>
             <option value= "MACMILLAN" >麦克米伦</option>
             <option value= "HERITAGE" >美国传统</option>
             <option value= "WIKTIONARY"  selected= "selected" >维基词典</option>
             <option value= "WORDNET" >WordNet</option>
             <option value= "RANDOMHOUSE" >RandomHouse</option>
             <%
     else  if  (Dictionary.WORDNET==WordLinker.getValidDictionary(request.getParameter( "dict" ))) {
             %>
             <option value= "ICIBA" >爱词霸</option>
             <option value= "YOUDAO" >有道</option>
             <option value= "COLLINS" >柯林斯</option>
             <option value= "WEBSTER" >韦氏</option>
             <option value= "OXFORD" >牛津</option>
             <option value= "CAMBRIDGE" >剑桥</option>
             <option value= "MACMILLAN" >麦克米伦</option>
             <option value= "HERITAGE" >美国传统</option>
             <option value= "WIKTIONARY" >维基词典</option>
             <option value= "WORDNET"  selected= "selected" >WordNet</option>
             <option value= "RANDOMHOUSE" >RandomHouse</option>
     <%
     else  if  (Dictionary.RANDOMHOUSE==WordLinker.getValidDictionary(request.getParameter( "dict" ))) {
     %>
             <option value= "ICIBA" >爱词霸</option>
             <option value= "YOUDAO" >有道</option>
             <option value= "COLLINS" >柯林斯</option>
             <option value= "WEBSTER" >韦氏</option>
             <option value= "OXFORD" >牛津</option>
             <option value= "CAMBRIDGE" >剑桥</option>
             <option value= "MACMILLAN" >麦克米伦</option>
             <option value= "HERITAGE" >美国传统</option>
             <option value= "WIKTIONARY" >维基词典</option>
             <option value= "WORDNET" >WordNet</option>
             <option value= "RANDOMHOUSE"  selected= "selected" >RandomHouse</option>
     <%
     }
     %>
         </select>

 

 

这段代码有什么问题呢?

如果我们一次写好后就不需要维护和更改这段代码,那么根据自己的经验知识和理解快速实现功能,满足要求即可。

但是,如果需要维护代码和扩展功能呢?比如,我现在要把选项显示的所有的中文全部改为英文,那么就变成如下代码了:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
         <select name= "dict"  id= "dict"  onchange= "update();" >
     <%
         if  (Dictionary.ICIBA==WordLinker.getValidDictionary(request.getParameter( "dict" ))) {
     %>
             <option value= "ICIBA"  selected= "selected" >iCIBA</option>
             <option value= "YOUDAO" >Youdao</option>
             <option value= "COLLINS" >Collins</option>
             <option value= "WEBSTER" >Webster's</option>
             <option value= "OXFORD" >Oxford</option>
             <option value= "CAMBRIDGE" >Cambridge</option>
             <option value= "MACMILLAN" >Macmillan</option>
             <option value= "HERITAGE" >Heritage</option>
             <option value= "WIKTIONARY" >Wiktionary</option>
             <option value= "WORDNET" >WordNet</option>
             <option value= "RANDOMHOUSE" >RandomHouse</option>
     <%
     else  if  (Dictionary.YOUDAO==WordLinker.getValidDictionary(request.getParameter( "dict" ))) {
     %>
             <option value= "ICIBA" >iCIBA</option>
             <option value= "YOUDAO"  selected= "selected" >Youdao</option>
             <option value= "COLLINS" >Collins</option>
             <option value= "WEBSTER" >Webster's</option>
             <option value= "OXFORD" >Oxford</option>
             <option value= "CAMBRIDGE" >Cambridge</option>
             <option value= "MACMILLAN" >Macmillan</option>
             <option value= "HERITAGE" >Heritage</option>
             <option value= "WIKTIONARY" >Wiktionary</option>
             <option value= "WORDNET" >WordNet</option>
             <option value= "RANDOMHOUSE" >RandomHouse</option>
     <%
     else  if  (Dictionary.COLLINS==WordLinker.getValidDictionary(request.getParameter( "dict" ))) {
     %>
             <option value= "ICIBA" >iCIBA</option>
             <option value= "YOUDAO" >Youdao</option>
             <option value= "COLLINS"  selected= "selected" >Collins</option>
             <option value= "WEBSTER" >Webster's</option>
             <option value= "OXFORD" >Oxford</option>
             <option value= "CAMBRIDGE" >Cambridge</option>
             <option value= "MACMILLAN" >Macmillan</option>
             <option value= "HERITAGE" >Heritage</option>
             <option value= "WIKTIONARY" >Wiktionary</option>
             <option value= "WORDNET" >WordNet</option>
             <option value= "RANDOMHOUSE" >RandomHouse</option>
     <%
     else  if  (Dictionary.WEBSTER==WordLinker.getValidDictionary(request.getParameter( "dict" ))) {
     %>
             <option value= "ICIBA" >iCIBA</option>
             <option value= "YOUDAO" >Youdao</option>
             <option value= "COLLINS" >Collins</option>
             <option value= "WEBSTER"  selected= "selected" >Webster's</option>
             <option value= "OXFORD" >Oxford</option>
             <option value= "CAMBRIDGE" >Cambridge</option>
             <option value= "MACMILLAN" >Macmillan</option>
             <option value= "HERITAGE" >Heritage</option>
             <option value= "WIKTIONARY" >Wiktionary</option>
             <option value= "WORDNET" >WordNet</option>
             <option value= "RANDOMHOUSE" >RandomHouse</option>
     <%
     else  if  (Dictionary.OXFORD==WordLinker.getValidDictionary(request.getParameter( "dict" ))) {
     %>
             <option value= "ICIBA" >iCIBA</option>
             <option value= "YOUDAO" >Youdao</option>
             <option value= "COLLINS" >Collins</option>
             <option value= "WEBSTER" >Webster's</option>
             <option value= "OXFORD"  selected= "selected" >Oxford</option>
             <option value= "CAMBRIDGE" >Cambridge</option>
             <option value= "MACMILLAN" >Macmillan</option>
             <option value= "HERITAGE" >Heritage</option>
             <option value= "WIKTIONARY" >Wiktionary</option>
             <option value= "WORDNET" >WordNet</option>
             <option value= "RANDOMHOUSE" >RandomHouse</option>
     <%
     else  if  (Dictionary.CAMBRIDGE==WordLinker.getValidDictionary(request.getParameter( "dict" ))) {
     %>
             <option value= "ICIBA" >iCIBA</option>
             <option value= "YOUDAO" >Youdao</option>
             <option value= "COLLINS" >Collins</option>
             <option value= "WEBSTER" >Webster's</option>
             <option value= "OXFORD" >Oxford</option>
             <option value= "CAMBRIDGE"  selected= "selected" >Cambridge</option>
             <option value= "MACMILLAN" >Macmillan</option>
             <option value= "HERITAGE" >Heritage</option>
             <option value= "WIKTIONARY" >Wiktionary</option>
             <option value= "WORDNET" >WordNet</option>
             <option value= "RANDOMHOUSE" >RandomHouse</option>
     <%
     else  if  (Dictionary.MACMILLAN==WordLinker.getValidDictionary(request.getParameter( "dict" ))) {
     %>
             <option value= "ICIBA" >iCIBA</option>
             <option value= "YOUDAO" >Youdao</option>
             <option value= "COLLINS" >Collins</option>
             <option value= "WEBSTER" >Webster's</option>
             <option value= "OXFORD" >Oxford</option>
             <option value= "CAMBRIDGE" >Cambridge</option>
             <option value= "MACMILLAN"  selected= "selected" >Macmillan</option>
             <option value= "HERITAGE" >Heritage</option>
             <option value= "WIKTIONARY" >Wiktionary</option>
             <option value= "WORDNET" >WordNet</option>
             <option value= "RANDOMHOUSE" >RandomHouse</option>
     <%
     else  if  (Dictionary.HERITAGE==WordLinker.getValidDictionary(request.getParameter( "dict" ))) {
     %>
             <option value= "ICIBA" >iCIBA</option>
             <option value= "YOUDAO" >Youdao</option>
             <option value= "COLLINS" >Collins</option>
             <option value= "WEBSTER" >Webster's</option>
             <option value= "OXFORD" >Oxford</option>
             <option value= "CAMBRIDGE" >Cambridge</option>
             <option value= "MACMILLAN" >Macmillan</option>
             <option value= "HERITAGE"  selected= "selected" >Heritage</option>
             <option value= "WIKTIONARY" >Wiktionary</option>
             <option value= "WORDNET" >WordNet</option>
             <option value= "RANDOMHOUSE" >RandomHouse</option>
     <%
     else  if  (Dictionary.WIKTIONARY==WordLinker.getValidDictionary(request.getParameter( "dict" ))) {
     %>
             <option value= "ICIBA" >iCIBA</option>
             <option value= "YOUDAO" >Youdao</option>
             <option value= "COLLINS" >Collins</option>
             <option value= "WEBSTER" >Webster's</option>
             <option value= "OXFORD" >Oxford</option>
             <option value= "CAMBRIDGE" >Cambridge</option>
             <option value= "MACMILLAN" >Macmillan</option>
             <option value= "HERITAGE" >Heritage</option>
             <option value= "WIKTIONARY"  selected= "selected" >Wiktionary</option>
             <option value= "WORDNET" >WordNet</option>
             <option value= "RANDOMHOUSE" >RandomHouse</option>
             <%
     else  if  (Dictionary.WORDNET==WordLinker.getValidDictionary(request.getParameter( "dict" ))) {
             %>
             <option value= "ICIBA" >iCIBA</option>
             <option value= "YOUDAO" >Youdao</option>
             <option value= "COLLINS" >Collins</option>
             <option value= "WEBSTER" >Webster's</option>
             <option value= "OXFORD" >Oxford</option>
             <option value= "CAMBRIDGE" >Cambridge</option>
             <option value= "MACMILLAN" >Macmillan</option>
             <option value= "HERITAGE" >Heritage</option>
             <option value= "WIKTIONARY" >Wiktionary</option>
             <option value= "WORDNET"  selected= "selected" >WordNet</option>
             <option value= "RANDOMHOUSE" >RandomHouse</option>
     <%
     else  if  (Dictionary.RANDOMHOUSE==WordLinker.getValidDictionary(request.getParameter( "dict" ))) {
     %>
             <option value= "ICIBA" >iCIBA</option>
             <option value= "YOUDAO" >Youdao</option>
             <option value= "COLLINS" >Collins</option>
             <option value= "WEBSTER" >Webster's</option>
             <option value= "OXFORD" >Oxford</option>
             <option value= "CAMBRIDGE" >Cambridge</option>

你可能感兴趣的:(superword,重构,英语)