我有一个小型 java 程序,它收集用户编写的 10 个单词并按指定顺序打印它们。就目前而言,该程序有效,但没有凝聚力。
我的问题源于对内聚概念的了解不足以解决这个问题,以及对 Java/OO 语言不熟悉。
我认为 Entry 类太杂乱了,另一个类应该承担这个类的一些功能。
任何暗示或线索,神秘或其他,将不胜感激!
Dialogue.java 中缺少输入阅读器是有意的,因为原始代码使用专有代码。
这些是三个类:入口、对话和打印机。
入口.java
public class Entry {
public static void main(String[] args){
String[] wordArray = new String[10];
Dialogue d = new Dialogue();
wordArray = d.read(wordArray);
Printer p = new Printer();
p.printForwards(wordArray);
p.printBackwards(wordArray);
p.printEveryOther(wordArray);
}
}
对话.java
public class Dialogue {
public String[] read(String[] s){
String[] temp;
temp = new String[s.length];
for(int i=0;i<s.length;i++){
String str = anything that reads input("Enter word number" + " " + (i+1));
temp[i] = str;
}
return temp;
}
}
打印机.java
public class Printer {
public void printForwards(String[] s){
System.out.println("Forwards:");
for(int i=0;i<s.length;i++){
System.out.print(s[i] + " ");
if(i==s.length-1){
System.out.println("");
}
}
}
public void printBackwards(String[] s){
System.out.println("Backwards:");
for(int i=s.length-1;i>=0;i--){
System.out.print(s[i]+ " ");
if(i==0){
System.out.println("");
}
}
}
public void printEveryOther(String[] s){
System.out.println("Every other:");
for(int i = 0; i < s.length; i++){
if(i % 2 == 0){
System.out.print(s[i] + " ");
}
}
}
}// /class