<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                # Java 工廠設計模式 > 原文: [https://javatutorial.net/java-factory-design-pattern](https://javatutorial.net/java-factory-design-pattern) 本文討論 [Java](https://javatutorial.net/install-java-9-eclipse) 中的工廠設計模式,這是 Java 中流行的[設計模式](https://javatutorial.net/tag/design-pattern)之一。 Java 是一種非常強大的語言。 每個人都喜歡它的主要原因是通過面向對象的編程實現了更高的可靠性和安全性。 工廠設計模式在 Java 中被廣泛使用,考慮到它的使用,它理所當然地贏得了歡迎。 這種設計模式的方法也稱為虛擬構造函數。 在用 Java 創建對象時,您可能不知道可能需要什么類型的對象以及在什么地方實現它們。 工廠設計模式正好解決了這個問題。 通過了解設計模式本身的名稱,您可以更好地理解。 考慮一個每天生產不同產品的工廠環境。 庫存中包含制造產品所需的所有材料,但是事先不知道要制造什么類型的產品。 用編程術語,您可以將清單中的組件作為類進行比較,但是您不知道要在運行時實例化哪些組件(制造什么產品)。 “工廠”一詞來自設計模式,它生成許多不同類型的對象,而不必知道創建哪種對象以及如何創建對象。 當我們具有超類和各種子類時,它將投入使用。 工廠設計模式被認為是一種創新的設計模式,并部署在 JDK 和 Spring 和 Struts 等框架中。 ## 為什么要使用工廠設計模式? * 允許子類選擇在運行時創建的對象的類型 * 促進松散耦合,因為它消除了將特定于應用程序的類綁定到代碼中的需要 ## 什么時候使用工廠設計模式? * 當您不知道您的班級需要哪些子班級時 * 當您希望子類指定要生成的對象時 超類充當創建對象的公共接口或抽象類,但讓子類決定在運行時實例化哪個類。 因此,可以說子類負責創建該類的實例。 ## Java 工廠設計模式示例 讓我們看一個通過實際示例并對其進行編碼來實現工廠設計模式的示例。 ![Example of Factory design pattern](https://img.kancloud.cn/63/98/6398dacd360fbeeea55479934e3092d7_822x338.jpg) 工廠設計模式示例 **步驟 1**:創建一個名為`Courses`的抽象類 ```java abstract class Courses{ protected int duration; protected double fee; abstract void getDuration(); abstract void getFeePerSemester(); public void calculateTotalFee(){ System.out.println(duration*fee); } }//end of Course class ``` **步驟 2**:創建擴展課程抽象類的類,這里提供了三門課程,分別是計算機,公共服務和衛生 ```java class Computer extends Courses{ //@override public void getDuration(){ duration=8; // duration in semesters } public void getFeePerSemester(){ fee = 3000; // fee in dollars } }//end of Computer class. class CivilServices extends Courses{ //@override public void getDuration(){ duration=6; // duration in semesters } public void getFeePerSemester(){ fee = 2000; // fee in dollars } }//end of CivilServices class. class Health extends Courses{ //@override public void getDuration(){ duration=10; // duration in semesters } public void getFeePerSemester(){ fee = 5000; // fee in dollars } }//end of Health class. ``` **步驟 3**:創建一個`Admission`類以生成子類的對象 ```java class Admission{ //use admittingCourse method to get object of type Course public Course admittingCourse (String courseName){ if(courseName == null){ return null; } if(courseName.equalsIgnoreCase("Computer")) { return new Computer(); } else if(courseName.equalsIgnoreCase("CivilServices")){ return new CivilServices(); } else if(courseName.equalsIgnoreCase("Health")) { return new Health(); } return null; } }//end of Admission class. ``` **步驟 4**:通過傳遞所需的信息(例如正在申請的課程,例如計算機,公務員系統和培訓課程),使用招生類別獲取子類別的對象,從而生成有關課程持續時間和費用的信息。 ```java import java.io.*; class CourseInformation { public static void main(String args[]) throws IOException { Admission newApplication = new Admission(); System.out.print("Enter the course you are trying to admit in: "); BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String cousreName = br.readLine(); Course c = newApplication.admittingCourse(courseName); System.out.print("For " + courseName + " the required duration you would have to study is: "); c.getDuration(); System.out.print("For " + courseName + " the required fee you would have to pay per semester is: "); c.getFeePerSemester(); System.out.print("The total amount you will have to pay for the entire course duration is:”); c.calculateTotalFee(); } } //end of CourseInformation class. ``` 這是 Java 中工廠設計模式的實際應用程序的源代碼。 現在,您知道什么是工廠設計模式,何時使用它以及使用它的好處是什么。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看