专注Java教育14年 全国咨询/投诉热线:400-8080-105
动力节点LOGO图
始于2009,口口相传的Java黄埔军校
首页 hot资讯 Java工厂模式菜鸟教程,快学起来呀

Java工厂模式菜鸟教程,快学起来呀

更新时间:2020-09-17 15:03:48 来源:动力节点 浏览1212次


一.简单工厂模式


简单工厂模式就是把对类的创建初始化全都交给一个工厂来执行,而用户不需要去关心创建的过程是什么样的,只用告诉工厂我想要什么就行了。而这种方法的缺点也很明显,违背了设计模式的开闭原则,因为如果你要增加工厂可以初始化的类的时候,你必须对工厂进行改建


代码如下:

package com.long88.ad.test;
 
interface  Car {
    public void getCar();
}
package com.long88.ad.test;
 
public class BMW implements Car{
 
    @Override
    public void getCar() {
        System.out.printf("来一辆BMW!");
    }
}
package com.long88.ad.test;
 
public class BYD implements Car {
    @Override
    public void getCar() {
        System.out.printf("来一辆BYD!");
    }
}
package com.long88.ad.test;
 
public class CarFactor {
 
    public static Car carFactor(Class tClass){
        if (tClass.getName().equals(BMW.class.getName())){
            return new BMW();
        }
        if (tClass.getName().equals(BYD.class.getName())){
            return new BYD();
        }
        return null;
    }
}
package com.long88.ad.test;
 
public class testFactory {
 
    public static void main(String[] args) {
        Car car = CarFactor.carFactor(BYD.class);
        car.getCar();
    }
}


结果如图:


Java工厂模式菜鸟教程


二. 工厂方法模式


设计一个工厂的接口,你想要什么东西,就写个类继承于这个工厂,这样就不用修改什么,直接添加就行了。就相当于,我这个工厂是用来生汽车的,而要什么品牌的汽车具体分到了每个车间,如果新多了一种品牌的汽车,直接新增一个车间就行了。那么问题又来了,如果想要生产大炮怎么办?


代码如下:

package com.long88.ad.test;
 
interface  Car {
    public void getCar();
}
package com.long88.ad.test;
 
public class BMW implements Car{
 
    @Override
    public void getCar() {
        System.out.printf("来一辆BMW!");
    }
}
package com.long88.ad.test;
 
public class BYD implements Car {
    @Override
    public void getCar() {
        System.out.printf("来一辆BYD!");
    }
}
//抽象工厂
interface CarFactory{
    public Car getCarByFactory();
}
// BMW 具体工厂类
class BMWfactory implements CarFactory{
  
    @Override
    public Car getCarByFactory() {
        return new BMW();
    }
}
// BYD 具体工厂类
class BYD factory implements CarFactory{
  
    @Override
    public Car getCarByFactory() {
        return new BYD ();
    }
}
public class TestFactory {
    public static void main(String[] args) {
        Car bmw= new BMWfactory().getCarByFactory();
        bmw.getCar();
    }
}


以上就是对“Java工厂模式菜鸟教程,快学起来呀”的介绍,希望对大家有所帮助,还想学习更多关于Java的课程,可以关注动力节点官网Java视频教程,免费下载学习。


提交申请后,顾问老师会电话与您沟通安排学习

免费课程推荐 >>
技术文档推荐 >>