Rumah  >  Artikel  >  Java  >  Corak reka bentuk biasa dalam rangka kerja Java

Corak reka bentuk biasa dalam rangka kerja Java

WBOY
WBOYasal
2024-06-02 10:57:57325semak imbas

Corak reka bentuk dalam rangka kerja Java digunakan untuk meningkatkan kebolehskalaan, kebolehselenggaraan dan kebolehgunaan semula kod. Corak yang biasa digunakan termasuk: Corak Singleton: Memastikan bahawa hanya satu contoh kelas wujud dan mengaksesnya sepanjang aplikasi. Corak kaedah kilang: Cipta antara muka untuk objek, dan subkelas menentukan objek yang hendak dijadikan instantiat. Corak pemerhati: Tentukan hubungan pergantungan satu-ke-banyak Apabila satu objek berubah, objek lain menerima pemberitahuan dan mengemas kini statusnya. Corak strategi: Tentukan satu siri algoritma dan jadikan ia boleh ditukar ganti, menjadikan kelas algoritma bebas daripada kelas klien.

Corak reka bentuk biasa dalam rangka kerja Java

Corak reka bentuk yang biasa digunakan dalam rangka kerja Java

Dalam proses pembangunan perisian, corak reka bentuk ialah struktur organisasi kod yang terbukti digunakan untuk menyelesaikan masalah biasa. Dalam rangka kerja Java, corak reka bentuk digunakan secara meluas untuk meningkatkan kebolehskalaan, kebolehselenggaraan dan kebolehgunaan semula kod. Berikut ialah beberapa corak reka bentuk yang paling biasa digunakan dalam rangka kerja Java:

Singleton Pattern

  • Tujuan: Pastikan hanya satu tika kelas wujud dan akses tika itu sepanjang aplikasi.

    public class Singleton {
      private static Singleton instance;
    
      private Singleton() { /* Private constructor to prevent instantiation */ }
    
      public static Singleton getInstance() {
          if (instance == null) {
              instance = new Singleton();
          }
          return instance;
      }
    }

Corak Kaedah Kilang

  • Tujuan: Tentukan antara muka untuk mencipta objek dan biarkan subkelas menentukan kelas mana yang hendak dibuat seketika.

    public interface ShapeFactory {
      Shape createShape();
    }
    
    public class CircleFactory implements ShapeFactory {
      @Override
      public Shape createShape() {
          return new Circle();
      }
    }
    
    public class SquareFactory implements ShapeFactory {
      @Override
      public Shape createShape() {
          return new Square();
      }
    }

Corak pemerhati

  • Tujuan: Tentukan hubungan pergantungan satu-ke-banyak antara objek apabila satu objek berubah, objek lain akan menerima pemberitahuan dan mengemas kini statusnya.

    public interface Observer {
      void update(Subject subject);
    }
    
    public class Subject {
      private List<Observer> observers = new ArrayList<>();
    
      public void addObserver(Observer observer) {
          observers.add(observer);
      }
    
      public void removeObserver(Observer observer) {
          observers.remove(observer);
      }
    
      public void notifyObservers() {
          for (Observer observer : observers) {
              observer.update(this);
          }
      }
    }

Corak Strategi

  • Tujuan: Tentukan keluarga algoritma, merangkumnya dan menjadikannya boleh ditukar ganti. Corak ini menjadikan kelas algoritma bebas daripada kelas klien yang menggunakannya.

    public interface Strategy {
      int calculate(int num1, int num2);
    }
    
    public class AdditionStrategy implements Strategy {
      @Override
      public int calculate(int num1, int num2) {
          return num1 + num2;
      }
    }
    
    public class SubtractionStrategy implements Strategy {
      @Override
      public int calculate(int num1, int num2) {
          return num1 - num2;
      }
    }

Kes praktikal: Corak pemerhati dalam Rangka Kerja Musim Bunga

Rangka Kerja Musim Bunga menggunakan corak pemerhati untuk memberitahu peristiwa kacang. Apabila kacang dicipta, dimusnahkan atau diubah, Spring menerbitkan acara yang aplikasi boleh melanggan dan bertindak sewajarnya.

rreeee

Atas ialah kandungan terperinci Corak reka bentuk biasa dalam rangka kerja Java. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn