4

java和设计模式(简单工厂)

 2 years ago
source link: https://blog.csdn.net/feixiaoxing/article/details/125796377
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

java和设计模式(简单工厂)

嵌入式-老费 已于 2022-07-16 10:12:52 修改 43

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】

        在设计模式中,有两种关于工厂的模式。一种是简单工厂,一种是工厂方法。区别两种模式的方法很简单,前者是一个工厂生产多个产品,后者是多个工厂可以生产多个产品

1、模式解析

        回到简单工厂,它的逻辑是这样。假设工厂可以生产多个产品,不同产品的大部分属性是一样的,也就是说生产流程是一样,只有少部分流程不一样。这个时候就可以把主流程抽象出来,把生成过程变成单独的一个produce函数。父类的逻辑差不多或者只有一点点,区别部分主要在子类,接口都是一样的produce函数。可以通过一个图来简单说明下,

0a44ed56dcd24e4e9b6d02def5de034b.png

        如上图所示,生成A和生产B的流程都可以抽象为produce。这样,在factory类中,就可以自由生产A和B,最终输出的接口都是product。换成代码是这样的,

         编译,运行后,就可以看到这样的结果,

2、使用场景

        简单工厂是使用比较多的场景之一。比如说做一个播放器,需要这个播放器支持不同的编解码算法方案。那么就可以把公共接口提取出来,比如说打开文件、关闭文件、解码文件、编码文件、跳跃到文件的下一个位置等等。这样,不管是mp3、wma,或者是其他的文件格式,都可以拿出来适配同样的接口。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK