Heim >Java >JavaBase >Was ist Factory-Pattern Java?

Was ist Factory-Pattern Java?

angryTom
angryTomOriginal
2019-11-11 09:34:573423Durchsuche

Was ist Factory-Pattern Java?

Was ist Factory Pattern Java?

Factory Pattern wird in Java am häufigsten verwendet die Designmuster. Bei dieser Art von Entwurfsmuster handelt es sich um ein Erstellungsmuster, das eine optimale Möglichkeit zum Erstellen von Objekten bietet.

Im Factory-Muster legen wir beim Erstellen von Objekten die Erstellungslogik nicht für den Client offen und verweisen mithilfe einer gemeinsamen Schnittstelle auf die neu erstellten Objekte.

Um es einfach auszudrücken: Wenn Sie ein neues Objekt erstellen, rufen Sie einfach die Factory-Methode auf. Beim Programmieren müssen Sie eine Factory-Schnittstelle definieren , die aus verschiedenen besteht Um es mit einer Unterklasse zu implementieren, definieren Sie eine bestimmte Factory-Klasse und definieren Sie eine Methode zum Generieren von Instanzen. Wir können diese Methode verwenden, um Instanzen zu erhalten.

Vorteile:

1. Ein Aufrufer, der ein Objekt erstellen möchte, muss nur seinen Namen kennen.

2. Hohe Skalierbarkeit. Wenn Sie ein Produkt hinzufügen möchten, müssen Sie nur eine Fabrikklasse erweitern.

3. Schützen Sie die spezifische Implementierung des Produkts. Der Anrufer kümmert sich nur um die Produktschnittstelle.

Nachteile:

Jedes Mal, wenn ein Produkt hinzugefügt wird, muss eine bestimmte Klassen- und Objektimplementierungsfabrik hinzugefügt werden, wodurch sich die Anzahl der Klassen im System verdoppelt In gewissem Maße erhöht es die Komplexität des Systems und erhöht auch die Abhängigkeit von bestimmten Klassen des Systems. Das ist keine gute Sache.

Anwendungsbeispiele:

1. Sie benötigen ein Auto, das direkt im Werk abgeholt werden kann, ohne sich Gedanken über die Herstellung des Autos und die spezifische Umsetzung im Inneren machen zu müssen dieses Auto.

Die einfache Implementierung des Factory-Musters ist wie folgt:

//所有车的接口  有一个共同改的方法 开车
public interface Car {
    public void drive();
}
//奥迪类  实现car接口因为奥迪车也是车 肯定可以开的嘛
public class Audi implements Car {
    public Audi(){
        System.out.println("生产出一辆奥迪");
    }
    @Override
    public void drive() {
        System.out.println("开奥迪");
    }
}
//宝马类  实现car接口因为宝马车也是车 肯定也可以开
public class Bmw implements Car{
    public Bmw(){
        System.out.println("生产出一辆宝马");
    }
    @Override
    public void drive() {
        System.out.println("开宝马");
    }
}
//生产车的工厂  该工厂接收一个车名 你只需要告诉他你要生产什么车  就可以生产出对应的车出来
public class CarFactory {
    public static Car getCar(String caename){
        if(caename.equals("audi")){
            return new Audi();
        }else if(caename.equals("bmw")){
            return new Bmw();
        }
            return null;
    }
}
//测试
public class Test {
    public static void main(String[] args) {
        //告诉工厂类 你需要生产出一辆奥迪车  那么给昂他传一个参数audi进去
        Car audi = CarFactory.getCar("audi");
        //就可以生产出奥迪的车 调用开车的方法就可以开车啦
        audi.drive();
        //宝马类似
        Car bmw = CarFactory.getCar("bmw");
        bmw.drive();
    }
}
输出:
成产出一辆奥迪
开奥迪
生产出一辆宝马
开宝马

Empfohlenes Tutorial: Java-Tutorial

Das obige ist der detaillierte Inhalt vonWas ist Factory-Pattern Java?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn