У меня есть Java проект, который следует шаблону проектирования Abstract Factory. Файлы должны работать с формой для сбора и отображения данных. Проблема, с которой я сталкиваюсь, заключается в том, как правильно использовать абстрактный класс, чтобы его можно было создать в классе publi c (я полагаю), а затем внедрить в форму.
Есть 11 java файлов, но вот абстрактный. Я могу разместить больше файлов, если требуется.
package goodcode;
enum CourseType {
Inclass, Online;
}
enum CourseSize {
Full, Half;
}
abstract class Course {
protected static CourseType courseType = null;
protected static CourseSize courseSize = null;
protected String courseNumber;
protected String courseTitle;
abstract String displayLectureMethod();
abstract String officeHour();
abstract String examtype();
abstract String discussionboard();
abstract String courseFee();
abstract double calculateCourseFee(double courseFee);
abstract String housingCost();
Course(CourseType courseType, CourseSize courseSize) {
this.courseType = courseType;
this.courseSize = courseSize;
}
public CourseType getCourseType() {
return courseType;
}
public void setCourseType(CourseType courseType) {
this.courseType = courseType;
}
public static CourseSize getCourseSize() {
return courseSize;
}
public void setCourseSize(CourseSize courseSize) {
this.courseSize = courseSize;
}
public String getCourseNumber() {
return courseNumber;
}
public void setCourseNumber(String courseNumber) {
this.courseNumber = courseNumber;
}
public String getCourseTitle() {
return courseTitle;
}
public void setCourseTitle(String courseTitle) {
this.courseTitle = courseTitle;
}
public String printHeader() {
String headerString = "";
headerString = "Course Outline\n\n";
headerString = headerString + "Course No: " + courseNumber + "\n";
headerString = headerString + "Course Title: " + courseTitle + "\n";
return headerString;
}
public String generateCourseOutline() {
String outputString;
outputString = displayLectureMethod();
outputString = outputString + officeHour();
outputString = outputString + examtype();
outputString = outputString + discussionboard();
outputString = outputString + courseFee();
outputString = outputString + housingCost();
return outputString;
}
public void setCourseType(String courseType) {
// TODO Auto-generated method stub
}
public void setCourseSize(String courseSize) {
// TODO Auto-generated method stub
}
}
Вот фрагмент кода из формы java code
private void jBtnGenActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jBtnGenActionPerformed
// TODO add your handling code here:
CourseDetails ct = new CourseDetails();
ct.setCourseNumber(jTxtCNo.getText());
ct.setCourseTitle(jTxtCName.getText());
ct.setCourseType(jCmBCType.getSelectedItem().toString());
if (jrdoFCourse.isSelected()){
ct.setCourseSize("Full");
}
else{
ct.setCourseSize("Half");
}
jtxtCoutline.setText(ct.printHeader());
jtxtCoutline.append(ct.generateCourseOutline());
}//GEN-LAST:event_jBtnGenActionPerformed
Мне нужно заменить этот раздел:
CourseDetails ct = new CourseDetails();
ct.setCourseNumber(jTxtCNo.getText());
ct.setCourseTitle(jTxtCName.getText());
ct.setCourseType(jCmBCType.getSelectedItem().toString());
if (jrdoFCourse.isSelected()){
ct.setCourseSize("Full");
}
else{
ct.setCourseSize("Half");
}
jtxtCoutline.setText(ct.printHeader());
jtxtCoutline.append(ct.generateCourseOutline());
чем-то новым java файл, который реализует абстрактный класс.