设计模式之:Factory模式进化论(2)扩展

本文探讨了工厂模式在软件开发中的两个实用场景:一是系统底层多种实现间的平滑过渡,二是测试框架中的灵活应用。通过具体案例,展示了如何利用工厂模式减少代码改动,提高系统的可维护性和可测试性。

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

设计模式之:Factory模式进化论(1)为什么要有工厂模式中,说明了为什么要使用工厂模式的简单理由,这里总结一下工厂模式的扩展应用.

(1)底层多种实现的转换

现实生活中不同的工厂生产同一个产品的时候,产品的细节可能会存在差异,工厂模式也可以达到同样的效果,例如系统开发系统的初期时候,使用文件的方式来存储数据,当系统到达一定规模是改用数据库来存放数据,当然可以声明一个持久化的接口,然后开发分别针对于数据库存储以及文件存储的实现类,系统规模较小的话这可能是比较好的选择,如果系统规模较大,涉及模块较多,那么当更换实现的时候,所有实例化实现类的地方都要调整,当然这也会涉及设计模式之:Factory模式进化论(1)为什么要有工厂模式中提到的问题,下面来看一下用工厂模式怎么解决这个问题,首先看一下系统的类图.


假设系统有两个模块,Customer以及Provider,如果不采用工厂模式,那么如果到系统的持久技术发生了改变,那么系统中所有涉及到持久层实现类的地方都要进行调整,如果系统的模块很多,这可能会是个麻烦的事情.如果采用工厂模式,如上图所示,只需要在实例化工厂对象的地方进行调整,可以达到最终的目的.


(2)测试框架中的应用

比如说实际的系统采用数据库作为存储介质,但是为了测试的方便性,或者说测试的情况下不打算使用数据库作为存储的介质,这个问题应该怎么解决了?首先来看一下简单的思路

测试执行步骤:

一:在SystemTest中创建一个System对象且把SystemTest的实例传递给System.

二:在SystemTest中调用System对象中的insert方法

三:System调用Stored实现类的insert方法(SystemTest.insert)

四:System调用的的数据流转到了SystemTest中,insert的实现也是由SystemTest来控制的,例如可以把要保存的数据打印出来


接下来看看用工厂模式实现的方式:

一:在SystemTest中创建一个System对象(SystemTest把自己的引用传递给System),System通过StoredFactory的实现类方式来获得Stored实现类的工厂.

二:在SystemTest中调用System对象中的insert方法

三:System调用Stored实现类的insert方法(SystemTest.insert)

四:System调用的的数据流转到了SystemTest中.这样一来SystemTest对于System的调用到最后的执行都可以起到很好的控制


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值