15、设计模式之工厂方法模式

本文介绍了一种软件设计模式——工厂模式,通过实例讲解如何在加入新产品时,通过创建特定的工厂类和产品类实现代码的扩展性。以红色和蓝色短视频为例,展示了工厂模式在实践中的应用。

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

接口类

/**
 * 接口类
 */
public interface Video {
    void printMe();
}

工厂接口类

/**
 * 工厂接口类
 */
public interface VideoFactory {
    Video getVideo();
}

来新需求了!!! 加入:红色短视频

需要同时加入RedVideo 以及对应的RedVideoFactory工厂类,相比较之前的简单工厂模式,实例化具体对象的工作,将由工厂类转移至其继承的子工厂类来负责

public class RedVideo implements Video {
    @Override
    public void printMe() {
        System.out.println("我是红色短视频");
    }
}
public class RedVideoFactory implements VideoFactory {
    @Override
    public Video getVideo() {
        return new RedVideo();
    }
}

又来新需求了!!!加入:蓝色短视频

public class BlueVideo implements Video {
    @Override
    public void printMe() {
        System.out.println("我是蓝色短视频");
    }
}
public class BlueVideoFactory implements VideoFactory {
    @Override
    public Video getVideo() {
        return new BlueVideo();
    }
}

由此可见,工厂模式的特点,就是同一产品簇,引入新成员的同时需要编写两个类来完成,因此,带来的缺点也很明显,类的数量会大量增多

调用

public class Main {

    public static void main(String[] args) {
        /**
         * 调用代码片段:红色短视频
         * 切换-蓝色短视频,也非常简单,
         * 只需要将new 后面的类名称替换为BlueVideoFactory
         */
        VideoFactory videoFactory = new RedVideoFactory();
        Video video = videoFactory.getVideo();
        video.printMe();
        
    }    
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值