java之工厂方法设计模式

时间:2022-07-23
本文章向大家介绍java之工厂方法设计模式,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

工厂方法模式是设计模式中应用最广泛的模式。在面向对象的编程中,对象的创建工作非常简单,对象的创建时机却很重要。工厂方法模式就是解决这个问题,它通过面向对象的手法,将所要创建的具体对象创建工作延迟到了子类,从而提供了一种扩展的策略,较好的解决了这种紧耦合的关系。

Bmw.java

package fac;

public interface Bmw {
    //产品的信息介绍
    void showInfo();
}
class Bmw3 implements Bmw{

    @Override
    public void showInfo() {
        // TODO Auto-generated method stub
        System.out.println("宝马3系");
    }
    
}
class Bmw5 implements Bmw{

    @Override
    public void showInfo() {
        // TODO Auto-generated method stub
        System.out.println("宝马5系");
    }
    
}
class Bmw7 implements Bmw{

    @Override
    public void showInfo() {
        // TODO Auto-generated method stub
        System.out.println("宝马7系");
    }
    
}

BmwFactory.java

package fac;

//汽车生产工厂接口
public interface BmwFactory {
    Bmw productBmw();

}
class Bmw3Factory implements BmwFactory{

    @Override
    public Bmw productBmw() {
        // TODO Auto-generated method stub
        System.out.println("生产宝马3系");
        return new Bmw3();
    }
    
}
class Bmw5Factory implements BmwFactory{

    @Override
    public Bmw productBmw() {
        // TODO Auto-generated method stub
        System.out.println("生产宝马5系");
        return new Bmw5();
    }
    
}
class Bmw7Factory implements BmwFactory{

    @Override
    public Bmw productBmw() {
        // TODO Auto-generated method stub
        System.out.println("生产宝马7系");
        return new Bmw7();
    }
    
}

Main.jav

package fac;

public class Main {
    public static void main(String[] args) {
        Bmw b3 = new Bmw3Factory().productBmw();
        b3.showInfo();
        Bmw b5 = new Bmw5Factory().productBmw();
        b5.showInfo();
        Bmw b7 = new Bmw7Factory().productBmw();
        b7.showInfo();
    }
}

输出:

生产宝马3系 宝马3系 生产宝马5系 宝马5系 生产宝马7系 宝马7系

说明:通过工厂把new对象给隔离,通过产品的接口可以接受不同实际产品的实现类,实例的类名的改变不影响其它合作开发人员的编程。