广宏建设集团有限公司网站做网站 接单

张小明 2026/1/14 9:30:45
广宏建设集团有限公司网站,做网站 接单,谷歌排名网站优化,黑科技引流推广神器下载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进行投诉反馈,一经查实,立即删除!

个人手机网站大全外贸soho自己建站

引言 在多线程编程中,频繁创建和销毁线程会消耗大量系统资源,影响应用性能。Java线程池通过复用已创建的线程,有效解决了这一问题。本文将深入剖析Java线程池的核心原理、参数配置和实战技巧,帮助1-3年经验的开发者掌握线程池的正…

张小明 2026/1/10 22:36:08 网站建设

如何做网站架构西安小型网络公司

还记得那个深夜,当我在ComfyUI界面上第一次看到WAN2.2-14B-Rapid-AllInOne的加载界面时,那种"终于找到了"的激动心情吗?这个将WAN 2.2核心架构、CLIP文本编码器和VAE视觉解码器融为一体的解决方案,彻底改变了AI视频创作…

张小明 2026/1/10 21:30:26 网站建设

烟台百度建网站wordpress 页面排版

字节跳动AHN-DN大模型:仿生记忆革命让AI处理百万字文本成本降74% 【免费下载链接】AHN-DN-for-Qwen-2.5-Instruct-3B 项目地址: https://ai.gitcode.com/hf_mirrors/ByteDance-Seed/AHN-DN-for-Qwen-2.5-Instruct-3B 导语 当AI阅读一本500页的法律合同或分…

张小明 2026/1/10 22:43:11 网站建设

学校英文版网站建设兰州seo公司

5个实战技巧:让你的网页内容一键变身专业PDF 【免费下载链接】wkhtmltopdf 项目地址: https://gitcode.com/gh_mirrors/wkh/wkhtmltopdf 还在为网页内容无法完美保存而烦恼?每次想要保存重要文章时,格式错乱、图片丢失、排版变形的问…

张小明 2026/1/10 23:08:01 网站建设

开锁公司网站建设wordpress前台投稿

大文件上传方案设计与实现(政府信创环境兼容) 方案背景 作为北京某软件公司的开发人员,我负责为政府客户实现一个兼容主流浏览器和信创国产化环境的大文件上传系统。当前需求是支持4GB左右文件的上传,后端使用PHP,前…

张小明 2026/1/11 2:56:16 网站建设

天津企业网站模板建站哪家好中国百强城市榜单

PingFangSC字体包:打破平台壁垒的终极跨平台字体解决方案 【免费下载链接】PingFangSC PingFangSC字体包文件、苹果平方字体文件,包含ttf和woff2格式 项目地址: https://gitcode.com/gh_mirrors/pi/PingFangSC 还在为网页设计在不同操作系统上呈现…

张小明 2026/1/11 3:24:00 网站建设