加盟网站制作运营公司网站seo公司

张小明 2026/1/1 19:08:34
加盟网站制作运营,公司网站seo公司,新河网站快排seo,天津移动网站建设6.3 工厂方法模式 工厂方法模式既保留了简单工厂模式的优点#xff0c;同时又解决了简单工厂模式的缺点。怎么解决简单工厂模式的缺点#xff08;不符合OCP开闭原则#xff09;的#xff1f; 一个工厂对应生产一种产品 工厂方法模式的角色包括#xff1a;抽象工厂角色具体…6.3 工厂方法模式工厂方法模式既保留了简单工厂模式的优点同时又解决了简单工厂模式的缺点。怎么解决简单工厂模式的缺点不符合OCP开闭原则的一个工厂对应生产一种产品工厂方法模式的角色包括抽象工厂角色具体工厂角色抽象产品角色具体产品角色代码如下packagecom.powernode.factory;/** * 武器类抽象产品角色 * author 动力节点 * version 1.0 * className Weapon * since 1.0 **/publicabstractclassWeapon{/** * 所有武器都有攻击行为 */publicabstractvoidattack();}packagecom.powernode.factory;/** * 具体产品角色 * author 动力节点 * version 1.0 * className Gun * since 1.0 **/publicclassGunextendsWeapon{Overridepublicvoidattack(){System.out.println(开枪射击);}}packagecom.powernode.factory;/** * 具体产品角色 * author 动力节点 * version 1.0 * className Fighter * since 1.0 **/publicclassFighterextendsWeapon{Overridepublicvoidattack(){System.out.println(战斗机发射核弹);}}packagecom.powernode.factory;/** * 武器工厂接口(抽象工厂角色) * author 动力节点 * version 1.0 * className WeaponFactory * since 1.0 **/publicinterfaceWeaponFactory{Weaponget();}packagecom.powernode.factory;/** * 具体工厂角色 * author 动力节点 * version 1.0 * className GunFactory * since 1.0 **/publicclassGunFactoryimplementsWeaponFactory{OverridepublicWeaponget(){returnnewGun();}}packagecom.powernode.factory;/** * 具体工厂角色 * author 动力节点 * version 1.0 * className FighterFactory * since 1.0 **/publicclassFighterFactoryimplementsWeaponFactory{OverridepublicWeaponget(){returnnewFighter();}}客户端程序packagecom.powernode.factory;/** * author 动力节点 * version 1.0 * className Client * since 1.0 **/publicclassClient{publicstaticvoidmain(String[]args){WeaponFactoryfactorynewGunFactory();Weaponweaponfactory.get();weapon.attack();WeaponFactoryfactory1newFighterFactory();Weaponweapon1factory1.get();weapon1.attack();}}如果想扩展一个新的产品只要新增一个产品类再新增一个该产品对应的工厂即可例如新增匕首packagecom.powernode.factory;/** * author 动力节点 * version 1.0 * className Dagger * since 1.0 **/publicclassDaggerextendsWeapon{Overridepublicvoidattack(){System.out.println(砍丫的);}}packagecom.powernode.factory;/** * author 动力节点 * version 1.0 * className DaggerFactory * since 1.0 **/publicclassDaggerFactoryimplementsWeaponFactory{OverridepublicWeaponget(){returnnewDagger();}}客户端程序packagecom.powernode.factory;/** * author 动力节点 * version 1.0 * className Client * since 1.0 **/publicclassClient{publicstaticvoidmain(String[]args){WeaponFactoryfactorynewGunFactory();Weaponweaponfactory.get();weapon.attack();WeaponFactoryfactory1newFighterFactory();Weaponweapon1factory1.get();weapon1.attack();WeaponFactoryfactory2newDaggerFactory();Weaponweapon2factory2.get();weapon2.attack();}}我们可以看到在进行功能扩展的时候不需要修改之前的源代码显然工厂方法模式符合OCP原则。工厂方法模式的优点一个调用者想创建一个对象只要知道其名称就可以了。扩展性高如果想增加一个产品只要扩展一个工厂类就可以。屏蔽产品的具体实现调用者只关心产品的接口。工厂方法模式的缺点每次增加一个产品时都需要增加一个具体类和对象实现工厂使得系统中类的个数成倍增加在一定程度上增加了系统的复杂度同时也增加了系统具体类的依赖。这并不是什么好事。
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

福田网站建设推荐建立网站功能

01、AIGC数据安全 数据安全治理包括数据分类分级、数据脱敏、数据防泄漏等工作,通常基于特征、正则表达式以及机器学习方式对大规模的数据进行识别标注,但大多面临规则引擎能力受限、误报高、重人力等问题,无论对于用户还是数据安全服务商来…

张小明 2025/12/23 14:46:01 网站建设

西安网站建设发布安阳做网站哪里好

谷歌发布 Nano Banana Pro(NBP)的消息,如果只被视为一个图像生成模型的升级,那就大错特错了。它的真正意义在于,它是一次由软件、算法和模型结构发起的,对传统 AI 硬件垄断格局的“降维打击”。 在过去的 …

张小明 2025/12/29 23:43:40 网站建设

管理型网站建设费用明细360建筑网证书估价

对新手而言,Python堪称最友好的入门编程语言!它抛弃了复杂的语法格式,代码接近自然语言,零基础者花几天就能写出简单的爬虫、数据分析脚本,那么Python语言好学吗?一起来探讨一下吧。python是一种非常好学的编程语言,它…

张小明 2025/12/23 14:43:55 网站建设

太原的网站建设公司石景山公司

数据集格式:Pascal VOC格式YOLO格式(不包含分割路径的txt文件,仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件)图片数量(jpg文件个数):961标注数量(xml文件个数):961标注数量(txt文件个数):961标注类别数&…

张小明 2025/12/23 14:41:48 网站建设

北京哪家网站建设公司好哈尔滨模板建站定制网站

博主介绍:💼 毕业设计解决方案 构建完整的毕业设计生态支撑体系,为学生提供从选题到交付的全链路技术服务: 技术选题库 微信小程序生态:精选100个符合市场趋势的前沿选题 Java企业级应用:汇集500个涵盖主流…

张小明 2025/12/31 16:40:43 网站建设

电子商务网站开发技术百度浏览器下载安装2023版本

2021 年全国职业院校技能大赛高职组 “信息安全管理与评估”赛项 A 卷一、赛项第一阶段时间 150 分钟。二、赛项信息三、注意事项赛题第一阶段请按裁判组专门提供的 U 盘中的“XXX-答题模板” 中的要求提交答案。选手需要在 U 盘的根目录下建立一个名为“GWxx” 的文件夹&#…

张小明 2025/12/23 14:39:42 网站建设