JAVA -- 工厂模式之 工厂方法模式

本文介绍了工厂模式在Spring和其他框架中的使用,通过实例展示了如何通过工厂简化对象初始化过程。文章通过客户购买鞋子的例子,解释了工厂方法模式,其中包含鞋产品接口、不同品牌的鞋产品实现、体育品牌工厂接口及具体品牌的工厂类。测试类展示了如何通过工厂创建和使用不同品牌的鞋产品,强调了工厂模式在代码维护和扩展性上的优势。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

       定义:

        在spring和其他的框架中,工厂模式被大量使用,实际上工厂模式就是帮助我们实例化对象的设计模式,因为在实际的项目中,实例化对象的同时,可能对象中有大量的初始化工作,如果每次项目有个地方用到这个实例化,后面都要加上一堆的初始化参数,变量等操作,那就太繁琐了并且后续维护难度大,我们可以把这个动作交给工厂,我们只需要调用工厂给我们提供的方法,就可以获取到初始化完成的对象。

        场景:

        一个客户到想网上购买一双鞋,考虑两个体育品牌,鸿星尔克和贵人鸟,

        工厂方法模式:

 

         鞋产品接口:

public interface Shoes {

    /*
     * @description: 展示鞋信息
     */
    public void showShoes();
}

        鸿星尔克鞋产品:

/*
 * @description: 鸿星尔克鞋
 */
public class ERKE_Shoes implements Shoes {

    @Override
    public void showShoes() {
        System.out.println("一双鸿星尔克鞋");
    }
}

        贵人鸟鞋产品:

/*
 * @description: 贵人鸟鞋
 */
public class GRN_Shoes implements Shoes {

    @Override
    public void showShoes() {
        System.out.println("一双贵人鸟鞋");
    }
}

        体育品牌工厂接口类:

public interface SportsFactory {
    /*
     * @description: 生产鞋
     * @return:  对应品牌店生产的鞋对象
     */
    public Shoes makeShoes() ;

}

        鸿星尔克工厂类:

public class ERKEFactory implements SportsFactory{
    @Override
    public Shoes makeShoes() {
        //初始化店员,灯光,空调,镜子等等等等
        return new ERKE_Shoes();
    }
}

        贵人鸟 工厂类:

public class GRNFactory implements SportsFactory{
    @Override
    public Shoes makeShoes() {
        //初始化店员,灯光,空调,镜子等等等等
        return new GRN_Shoes();
    }
}

        测试类:

public class mainTest {

    public static void main(String[] args) {
        //客户买鞋
        //客户想买鸿星尔克的鞋,创建鸿星尔克品牌工厂
        SportsFactory sportsFactory = new ERKEFactory();
        //鸿星尔克品牌工厂中创建鸿星尔克产品对象
        Shoes shoes = sportsFactory.makeShoes();
        //鞋信息
        shoes.showShoes();

        //客户想买贵人鸟的鞋,创建贵人鸟品牌工厂
        SportsFactory sportsFactory2 = new GRNFactory();
        //贵人鸟品牌工厂中创建贵人鸟产品对象
        Shoes shoes2 = sportsFactory2.makeShoes();
        //鞋信息
        shoes2.showShoes();
    }
}

        效果:

 

总结:

        简单工厂,是把产品对象实例化中初始化的操作给工厂,把这一块代码抽象出来,以后初始化有改动,就只需要改工厂对应方法即可

        工厂方法模式,对比简单工厂,简单工厂是把所有产品实例都交给一个大工厂,而工厂方法模式把这个操作细分给了具体的品牌工厂,大工厂只提供抽象接口,具体实例化初始化由各自品牌工厂完成

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值