色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

java的設計模式和例子

江奕云1年前7瀏覽0評論

Java是一種非常流行的面向對象編程語言,它有著豐富的語法和庫,可以用于開發各種類型的應用程序。Java中的設計模式是一種廣泛應用于軟件開發中的技巧,它能夠幫助開發人員設計出更加靈活、可重用、可擴展的代碼。

以下是三種常用的Java設計模式和它們的示例:

1. 工廠模式

public interface Animal {
void makeSound();
}
public class Dog implements Animal {
@Override
public void makeSound() {
System.out.println("汪汪");
}
}
public class Cat implements Animal {
@Override
public void makeSound() {
System.out.println("喵喵");
}
}
public class AnimalFactory {
public Animal createAnimal(String type) {
if (type.equals("dog")) {
return new Dog();
} else if (type.equals("cat")) {
return new Cat();
} else {
throw new IllegalArgumentException("Unsupported animal type");
}
}
}

在上面的示例中,我們定義了一個Animal接口和它的兩個實現類Dog和Cat。AnimalFactory類是一個工廠類,在不同的類型參數下,它可以創建不同的Animal實例。

2. 單例模式

public class Singleton {
private static Singleton instance;
private Singleton() {}
public static Singleton getInstance() {
if (instance == null) {
instance = new Singleton();
}
return instance;
}
}

單例模式是一種只能創建一個實例的模式,它通常是通過一個靜態方法來獲取該實例。在上面的示例中,我們定義了一個私有的構造函數和一個靜態的getInstance()方法來獲取Singleton實例。只有在instance為null的時候,才會創建這個實例。

3. 觀察者模式

public interface Observer {
void onUpdate(float temperature, float humidity);
}
public interface Subject {
void registerObserver(Observer observer);
void removeObserver(Observer observer);
void notifyObservers();
}
public class WeatherStation implements Subject {
private float temperature;
private float humidity;
private List<Observer> observers = new ArrayList<>();
public void setTemperature(float temperature) {
this.temperature = temperature;
notifyObservers();
}
public void setHumidity(float humidity) {
this.humidity = humidity;
notifyObservers();
}
@Override
public void registerObserver(Observer observer) {
observers.add(observer);
}
@Override
public void removeObserver(Observer observer) {
observers.remove(observer);
}
@Override
public void notifyObservers() {
for (Observer observer : observers) {
observer.onUpdate(temperature, humidity);
}
}
}

觀察者模式是一種當系統中某個對象狀態變化時,其他與之相關對象都會得到通知并自動更新的模式。在上面的示例中,我們定義了Observer和Subject接口,以及一個WeatherStation類作為Subject。WeatherStation類會保存溫度和濕度,并在它們發生變化時通知其中的觀察者。