尧图网络科技YAOTU DIGITAL 获取报价
获取报价
首页 / 资讯中心 / 文章详情

设计模式9——抽象工厂

发布时间:2026/9/24 13:31:30

资讯中心
01
ARTICLE

设计模式9——抽象工厂

设计模式9——抽象工厂
动机在软件设计中经常面对一系列相互依赖的对象的创建工作由于需求变化经常面对更多对象的创建工作。1. 引入问题classEmployeeDB{public:DBConnectFactory*dbConnectFact;DBCommandFactory*dbCmdFact;public:vectorEmployeeInfoGetEmployee(){DBConnect*connectiondbConnectFact-DBConnectObjCreate();connection-ConnectNet(ip:192.168.0.1);DBCommand*commanddbCmdFact-DBCommandObjCreate();command-Command(SELECT * FROM TENNER);}}这里使用了工厂方法但存在以下问题1调用者需要维护多个工厂比较繁琐。2如果DBConnectFactory和DBCommandFactory是不匹配的工厂则执行会失败。2. 优化同一厂商生产不同零件的工厂合并为一个。// 工厂基类classDBOptFactory{public:virtualDBConnection*DBConnectObjCreate()0;virtualDBCommand*DBCommandObjFactory()0;};// 具体工厂classSqlConnectFactory:publicDBConnectFactory{public:virtualDBConnection*DBConnectObjCreate(){returnnewSqlDBConnection();}virtualDBCommand*DBCommandObjCreate(){returnnewSqlDBCommand();}};如此以来最终的代码如下classEmployeeDB{public:DBOptFactory*dbOptFact;public:vectorEmployeeInfoGetEmployee(){DBConnect*connectiondbOptFact-DBConnectObjCreate();connection-ConnectNet(ip:192.168.0.1);DBCommand*commanddbOptFact-DBCommandObjCreate();command-Command(SELECT * FROM TENNER);...}}多态就是要实现抽象抽象工厂就是一种不止生产一种具体类型对象的工厂各种对象都可以生产。
02
RELATED NEWS

相关资讯

更多网站建设与数字化升级内容

03
WHY YAOTU

想打造同款高转化官网?

懂行业、懂生意,从建站到增长一站式陪跑

场景化定制

不做模板站,围绕你的业务场景量身设计,小众不撞款。

营销型架构

以转化目标组织内容与路径,让官网真正带来询盘。

全周期服务

设计、开发、运营、运维一体,上线只是开始。

免费获取你的建站方案

留下需求,专属顾问 24 小时内为你输出方案建议。