Rumah  >  Artikel  >  Java  >  Pengenalan kepada amalan corak reka bentuk dalam bahasa Jawa

Pengenalan kepada amalan corak reka bentuk dalam bahasa Jawa

王林
王林asal
2023-06-11 16:09:071139semak imbas

Pengenalan praktikal kepada corak reka bentuk dalam bahasa Java

Corak reka bentuk ialah idea dan kaedah yang terbukti untuk menyelesaikan masalah reka bentuk dan pembangunan perisian. Mereka mengurangkan kerumitan dalam pembangunan perisian dan menyediakan kod yang fleksibel dan boleh digunakan semula. Dalam bahasa Java, penerapan corak reka bentuk adalah amat penting. Artikel ini akan memperkenalkan beberapa corak reka bentuk yang biasa digunakan dalam bahasa Java dan aplikasi praktikalnya.

  1. Corak Kilang

Corak kilang ialah corak reka bentuk untuk mencipta objek. Ia merangkum proses penciptaan objek dalam satu kelas supaya contoh baharu boleh dihasilkan dengan mudah apabila diperlukan. Corak kilang boleh mengurangkan pertindihan kod dengan berkesan sambil memberikan fleksibiliti yang lebih besar. Berikut ialah contoh corak kilang:

//定义接口
public interface Animal {
   void makeSound();
}

//定义实现类
public class Cat implements Animal{
   @Override
   public void makeSound() {
      System.out.println("Meow");
   }
}

public class Dog implements Animal{
   @Override
   public void makeSound() {
      System.out.println("Woof");
   }
}

public class AnimalFactory {
   public static Animal createAnimal(String animalType){
      if(animalType.equalsIgnoreCase("dog")){
         return new Dog();
      }
      else if(animalType.equalsIgnoreCase("cat")){
         return new Cat();
      }
      else return null;
   }
}

//测试
public class FactoryTest {
   public static void main(String[] args) {
      Animal myAnimal = AnimalFactory.createAnimal("dog");
      myAnimal.makeSound();
   }
}
  1. Corak singleton

Corak singleton ialah corak reka bentuk yang memastikan kelas hanya mempunyai satu tika. Ia biasanya digunakan untuk mengawal sumber dan mengurus objek individu. Corak tunggal di Jawa boleh dilaksanakan dalam gaya malas atau gaya lapar. Berikut ialah contoh corak Singleton ala Hungry:

public class Singleton {
   private static Singleton uniqueInstance = new Singleton();
   private Singleton() {} 
   
   public static Singleton getInstance() {
      return uniqueInstance;
   }
}
  1. Corak Pemerhati

Corak Pemerhati ialah corak di mana objek (dipanggil pemerhati) Dengan mendaftarkan diri anda dengan objek lain, dipanggil topik, untuk menerima pemberitahuan apabila topik berubah. Corak Pemerhati membantu anda mereka bentuk sistem gandingan longgar di mana objek berinteraksi antara satu sama lain tanpa kesan gandingan. Berikut ialah contoh corak Pemerhati:

//定义接口
public interface Observer {
   public void update(int temperature, int humidity, int pressure);
}

//实现类
public class WeatherData implements Subject {

   private ArrayList<Observer> observers;
   private int temperature;
   private int humidity;
   private int pressure;
   
   public WeatherData(){
      observers = new ArrayList<Observer>();
   }
   
   public void registerObserver(Observer o) {
      observers.add(o);
   }

   public void removeObserver(Observer o) {
      int i = observers.indexOf(o);
      if (i >= 0) {
         observers.remove(i);
      }
   }

   public void notifyObservers() {
      for (Observer observer : observers) {
         observer.update(temperature, humidity, pressure);
      }
   }
   
   public void measurementsChanged() {
      notifyObservers();
   }
   
   public void setMeasurements(int temperature, int humidity, int pressure) {
      this.temperature = temperature;
      this.humidity = humidity;
      this.pressure = pressure;
      measurementsChanged();
   }
}

//测试
public class WeatherStation {

   public static void main(String[] args) {
      WeatherData weatherData = new WeatherData();
      CurrentConditionsDisplay currentDisplay = new CurrentConditionsDisplay(weatherData);
      weatherData.setMeasurements(80, 65, 30.4f);
      weatherData.setMeasurements(82, 70, 29.2f);
   }
}
  1. Corak Strategi

Corak Strategi ialah corak di mana objek memisahkan tingkah laku kepada pelaksanaan yang berbeza. Ia membolehkan anda memilih pelaksanaan algoritma anda pada masa jalan, memberikan fleksibiliti yang lebih besar. Corak strategi membantu anda mereka bentuk kod boleh guna semula sambil mengurangkan pertindihan.

//定义接口
public interface FlyBehavior {
   public void fly();
}

public class FlyWithWings implements FlyBehavior {
   public void fly() {
      System.out.println("I'm flying!!");
   }
}

public interface QuackBehavior {
   public void quack();
}

public class Quack implements QuackBehavior {
   public void quack() {
      System.out.println("Quack");
   }
}

//策略模式实现类
public abstract class Duck {
   FlyBehavior flyBehavior;
   QuackBehavior quackBehavior;

   public void performFly() {
      flyBehavior.fly();
   }

   public void performQuack() {
      quackBehavior.quack();
   }

   public void setFlyBehavior(FlyBehavior fb) {
      flyBehavior = fb;
   }

   public void setQuackBehavior(QuackBehavior qb) {
      quackBehavior = qb;
   }
}

public class MallardDuck extends Duck {
   public MallardDuck() {
      quackBehavior = new Quack();
      flyBehavior = new FlyWithWings();
   }

   public void display() {
      System.out.println("I'm a real Mallard duck");
   }
}

//测试
public class MiniDuckSimulator {
 
    public static void main(String[] args) {
 
        Duck mallard = new MallardDuck();
        mallard.performQuack();
        mallard.performFly();
    }
}

Ringkasan:

Corak reka bentuk ialah idea dan kaedah pengaturcaraan yang sangat berguna dalam bahasa Java. Corak kilang, corak tunggal, corak pemerhati dan corak strategi semuanya adalah corak reka bentuk yang biasa digunakan, dan aplikasi praktikalnya boleh meningkatkan fleksibiliti dan kebolehgunaan semula program dengan banyak. Kami berharap kandungan corak reka bentuk yang diterangkan dalam artikel ini akan membantu pembaca dalam mendalami pemahaman mereka dan aplikasi praktikal corak reka bentuk.

Atas ialah kandungan terperinci Pengenalan kepada amalan corak reka bentuk dalam bahasa Jawa. 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