」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > Java 中的設計模式及其範例

Java 中的設計模式及其範例

發佈於2024-11-09
瀏覽:781

Design Patterns in Java with examples

Java 中的設計模式是什麼?

設計模式是軟體設計中常見問題的可重複使用解決方案。它們代表了可應用於軟體開發中各種情況的最佳實踐,特別是像 Java 這樣的物件導向程式設計。

設計模式的類型

  • 創建模式: 處理物件創建機制。
  • 結構模式: 關注類別與物件的組成方式。
  • 行為模式: 關注對象之間的溝通。

設計模式的用途

  • 提高程式碼的可重複使用性。
  • 提高程式碼可讀性和可維護性。
  • 促進開發者之間的溝通。

設計模式範例

1. 單例模式

    public class Singleton {
        private static Singleton instance;

        private Singleton() {}

        public static Singleton getInstance() {
            if (instance == null) {
                instance = new Singleton();
            }
            return instance;
        }
    }
優點:
  • 對單一實例的受控存取。
  • 透過防止多個實例來節省記憶體。
缺點:
  • 由於全域狀態而難以測試。
  • 可能導致緊密耦合。

2. 觀察者模式

    import java.util.ArrayList;
    import java.util.List;

    interface Observer {
        void update(String message);
    }

    class Subject {
        private List observers = new ArrayList();

        public void addObserver(Observer observer) {
            observers.add(observer);
        }

        public void notifyObservers(String message) {
            for (Observer observer : observers) {
                observer.update(message);
            }
        }
    }
優點:
  • 促進主體與觀察者之間的鬆散耦合。
  • 可輕鬆擴展新觀察者。
缺點:
  • 如果有許多觀察者,表現會很差。
  • 因間接通訊而難以調試。

3. 建造者模式

    class Product {
        private String part1;
        private String part2;

        public void setPart1(String part1) { this.part1 = part1; }
        public void setPart2(String part2) { this.part2 = part2; }
    }

    class Builder {
        private Product product = new Product();

        public Builder buildPart1(String part1) {
            product.setPart1(part1);
            return this;
        }

        public Builder buildPart2(String part2) {
            product.setPart2(part2);
            return this;
        }

        public Product build() {
            return product;
        }
    }
優點:
  • 簡化複雜物件的創建。
  • 使程式碼更具可讀性和可維護性。
缺點:
  • 透過多個建構器類別增加複雜性。
  • 對於簡單的物件來說可能有點過分了。

4.工廠模式

    interface Shape {
       void draw();
    }

    class Circle implements Shape {
       public void draw() { System.out.println("Drawing a Circle"); }
    }

    class Rectangle implements Shape {
       public void draw() { System.out.println("Drawing a Rectangle"); }
    }

    class ShapeFactory {
       public Shape getShape(String shapeType) {
          if (shapeType == null) return null;
          if (shapeType.equalsIgnoreCase("CIRCLE")) return new Circle();
          if (shapeType.equalsIgnoreCase("RECTANGLE")) return new Rectangle();
          return null;
       }
    }
優點:
  • 封裝物件建立邏輯。
  • 無需修改現有程式碼即可輕鬆擴展新形狀。
缺點:
  • 增加額外的類,這會增加複雜性。
  • 若使用不當,可能會導致工廠類激增。

四人幫 (GoF)

「四人幫」指的是有影響力的書《設計模式:可重複使用物件導向軟體的元素》的作者。作者——Erich Gamma、Richard Helm、Ralph Johnson 和 John Vlissides——介紹了 23 種經典設計模式,這些模式已成為軟體工程的基礎。

結論

設計模式是 Java 程式設計中的重要工具,可協助開發人員建立健全且可維護的系統。了解它們的用途、優點和缺點對於有效的軟體設計至關重要。四人幫的貢獻為有效應用這些模式提供了堅實的基礎。

版本聲明 本文轉載於:https://dev.to/codegreen/design-patterns-in-java-with-examples-1klg?1如有侵犯,請聯絡[email protected]刪除
最新教學 更多>

免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。

Copyright© 2022 湘ICP备2022001581号-3