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

java工廠和抽象工廠方法

陳思宇1年前7瀏覽0評論

Java工程師在編寫代碼時,常會使用工廠方法來創建對象。這是一種設計模式,它提供了一種創建對象的標準方法,從而使代碼更加靈活、可維護和可擴展。Java中工廠方法又分為普通工廠方法和抽象工廠方法。

public interface Animal {
void name();
}
public class Dog implements Animal {
@Override
public void name() {
System.out.println("我是一只狗。");    
}
}
public class Cat implements Animal {
@Override
public void name() {
System.out.println("我是一只貓。");    
}
}
public class AnimalFactory {
public static Animal createAnimal(String type) {
if ("Dog".equals(type)) {
return new Dog();
} else if ("Cat".equals(type)) {
return new Cat();
} else {
return null;
}
}
}
public class Demo {
public static void main(String[] args) {
Animal dog = AnimalFactory.createAnimal("Dog");
dog.name();
Animal cat = AnimalFactory.createAnimal("Cat");
cat.name();
}
}

上述代碼是普通工廠方法的實現。在通過靜態方法 createAnimal() 中傳入不同的參數類型來創建狗或貓對象。而抽象工廠方法則是更高級和更靈活的方法,它通過工廠的實例來創建一系列相關或依賴對象。

public interface Animal {
void name();
}
public class Dog implements Animal {
@Override
public void name() {
System.out.println("我是一只狗。");    
}
}
public class Cat implements Animal {
@Override
public void name() {
System.out.println("我是一只貓。");    
}
}
public interface AnimalFactory {
Animal createAnimal();
}
public class DogFactory implements AnimalFactory {
@Override
public Animal createAnimal() {
return new Dog();
}
}
public class CatFactory implements AnimalFactory{
@Override
public Animal createAnimal() {
return new Cat();
}
}
public class Demo {
public static void main(String[] args) {
AnimalFactory dogFactory = new DogFactory();
Animal dog = dogFactory.createAnimal();
dog.name();
AnimalFactory catFactory = new CatFactory();
Animal cat = catFactory.createAnimal();
cat.name();
}
}

上述代碼是抽象工廠方法的實現。它使用了接口來定義不同的具體工廠類,并通過工廠的實例來創建不同的狗或貓對象。抽象工廠方法更加靈活和擴展性強,具體工廠類可以隨時增加、替換或移除,以滿足不同的需求。