Создание абстрактного класса для использования в форме - PullRequest
0 голосов
/ 17 марта 2020

У меня есть 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 файл, который реализует абстрактный класс.

...