网站站点网站开发立项

news/2025/9/22 16:12:04/文章来源:
网站站点,网站开发立项,微信公众号手机网站开发,湖南长沙天气代码气味的定义 #xff08;来自维基百科#xff09;#xff1a; “程序源代码中任何可能表明存在更深层问题的症状。” 在Java中#xff0c; 静态方法允许您在“类范围”内执行代码#xff0c;而不是像成员方法这样的实例范围。 这意味着#xff0c;它们依赖于类级别的变… 代码气味的定义 来自维基百科 “程序源代码中任何可能表明存在更深层问题的症状。” 在Java中 静态方法允许您在“类范围”内执行代码而不是像成员方法这样的实例范围。 这意味着它们依赖于类级别的变量如果有传递给静态方法的参数或任何其他全局可访问的数据。 它们不是面向对象的。 对象具有与之关联的状态并且只能通过实现该对象“行为”的方法进行操作。 静态方法不在状态上操作它们不是面向对象的实际上它们是过程式的。 这不好吗 不会。尽管Java是面向对象的但有时还是需要和/或首选Java中的类似于过程的编程。 任何面向对象的语言的真正威力在于能够在代码中紧密实现现实生活中的系统模型的能力请参阅我有关面向对象建模的文章 。 但是即使在最核心的对象模型中也很可能会有一些粘合代码或将以过程样式实现的基础结构代码。 因此如果Java中的类似于过程的编程不是“那么糟糕”并且静态方法是过程编程的一种形式那么静态方法是否不好 嗯……答案并不像是“是”或“否”那么简单无论您在其他博客上会读到什么但我可能会不断争论着为什么这实际上是必须在上下文中做出的决定因此让我们重点关注一下我在Michael Minella博客的“如何模拟静态方法”中遇到的一组语句 “已经成为该语言基础知识的部分您要做的只是看一下Apache Commons项目以了解这一点非常糟糕以测试为名必须不惜一切代价避免。 Gosling或其团队中的某人出于某种原因将其放入语言中并且仅由于您的工具集不支持对它的测试是无稽之谈而避免使用这些语言。 是时候获得新的工具集了。” 首先我想指出的是仅仅因为某种东西已经成为一种语言的基本组成部分并不意味着它就是“好”或应该做的事情。 查看已检查的异常以供参考。 我记得EJB 1.x和2.x在过去成为Java EE的“基础”部分因此也请参考一下。 其次尽管我在理论上确实同意Michael的观点即由于您的工具不支持某种特定的语言功能而使其愚蠢但他的前提是静态方法。 避免使用静态方法是因为您的工具不支持静态方法这根本不是胡说。 实际上由一些好的测试和/或模拟框架 Mockito是我最喜欢的框架引起的阻抗类型 和静态方法可以确定地识别为代码异味。 这并不意味着我们不应该这样做而是应该付出更多的努力来理解我们为什么这样做并在存在“更深层次的问题”时探索替代方法。 我想指出至少有两种类型的静态方法通常不会在测试/模拟框架中表现出太大的阻力。 第一种类型是用作实用程序方法的静态方法就像在许多apache commons库或您自己的内部commons库中找到的方法一样。 这些通常是支持特定方法目标的例程并且将它们模拟/存根到单元测试之外是没有意义的。 它们是实现的一部分因此应进行测试。 第二种类型是静态方法用于代替构造函数如Joshua Bloch在他的书《 Effective Java》中所展示的。 静态方法的这种使用使您可以使用名称具有非常描述性的方法来构造新对象以及其他一些优点。 第二种静态方法的分支可能包括工厂方法但这取决于上下文。 当单元依靠静态方法执行超出该单元职责范围的逻辑时由于静态方法和测试框架阻抗而产生的最明显的代码异味。 在这些情况下您的测试框架将对您不利因为您无法对范围外的逻辑进行存根/模拟因为它是通过静态方法“硬编码”的。 这可以被视为“更深层的问题”并且是大多数博客的焦点这些博客告诉您不要使用静态方法因为测试变得异常困难或不可能。 更改设计方法以遵循依赖性反转原则是另一种选择。 对如何测试单元的更好的理解是另一个。 我强烈断言在使用静态方法的情况下您可能会从测试框架中得到的回退表示代码有气味而不是您需要尝试找到一个使用复杂的欺骗手段并将类加载器重新映射作为解决方案的框架。 应该准备评估一种特殊方法在其设计中的用途和基本缺陷。 Michael的博客文章使读者太容易采用新的工具/框架仅因为Java支持静态方法并且您当前的测试框架阐明了一个阻抗-在这种情况下阻抗反映了代码的味道需要一些更深入更批判性的思考。 参考 Java静态方法可能是 JCG合作伙伴 Christian Posta在Christian Posta Software博客上的代码味道 。 翻译自: https://www.javacodegeeks.com/2012/05/java-static-methods-can-be-code-smell.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/909595.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

行业网站建设分析长春做网站多少钱

题目表示 有N堆石子排成一排,每堆石子有一定的数量。现要将N堆石子并成为一堆。合并的过程只能每次将相邻的两堆石子堆成一堆,每次合并花费的代价为这两堆石子的和,经过N-1次合并后成为一堆。求出总的代价最小值。 举例1: 2,4,5 总代价最小值为17 举例2: 4,1,1,4 总代…

一天一款实用的AI工具,第2期,AI摘要生成工具

本期介绍的是一款专业的AI摘要生成工具,帮你提取核心信息,助你提升阅读效率。现实问题 在信息过载的今天,有句话尤其令人共鸣: 好的摘要 = 高效传递的核心。 很多写作者、研究者或职场人都面临这样的困境: 花费大…

网站性能优化方案wordpress需要做哪些设置

本文概述PHP提供了各种功能来从文件读取数据。有多种功能允许你读取所有文件数据, 逐行读取数据以及逐字符读取数据。下面提供了可用的PHP文件读取功能。fread()fgets()fgetc()PHP读取文件-fread()PHP fread()函数用于读取文件的数据。它需要两个参数:文件资源和文件…

实用指南:数据库造神计划第十七天---索引(2)

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

邀您参加丨云栖大会中企出海技术分论坛

【云栖大会中企出海技术分论坛专场】 🌍 全球布局,技术先行!中国企业全球化正当时 🌏 2025 年 9 月 25 日 上午 9:30-12:20 📍 阿里云云栖小镇 D2-2 馆丨“ 中企出海技术分论坛” 即将启幕! 面对全球市场机遇…

汉中专业做网站wordpress选项下拉

在了解过世界最大的PHP站点,Facebook的后台技术后,今天我们来了解一个百万级PHP站点的网站架构:Poppen.de。Poppen.de是德国的一个社交网站,相对Facebook、Flickr来说是一个很小的网站,但它有一个很好的架构&#xff0…

h5案例排名轻松seo 网站推广

/任务 5 有三位老师,王老师,孙老师和小李老师, 王老师工龄最长(15年),孙老师工龄比王老师小3年, 小李老师工龄最短,是王老师和孙老师工龄和的二分之一 再除以2的余数正好是他的工龄,编写程序从控…

asp网站 攻击网站设计基本功能

当涉及到虾皮(Shopee)接口的时,我们需要注意的是虾皮提供了API供开发者使用以集成其平台功能。然而,由于API的具体细节、参数和认证机制可能会随时间变化,以下是一个简化的示例和步骤,用于说明如何与虾皮AP…

网站成立时间商家怎么入驻微信小程序

环境: windows xp sp3 工具: bjanes.2,HashCalc 这个和14题是一样的,看名字就发现都是2.0A,然后用HashCalc来计算一下MD5,发现它们的值是相同的。 如果没猜错,应该就是在14题是被放错题了。

非物质文化遗产网站怎么做网站用户反馈

一、什么是CountDownLatch CountDownLatch中count down是倒数的意思,latch则是门闩的含义。整体含义可以理解为倒数的门栓。 CountDownLatch的作用也是如此,在构造CountDownLatch(int count):的时候需要传入一个整数count,在这个…

百中搜网站建设wordpress字菜单

人在这世上是无法独自生存的。因为学校和社会都是由众多人所组成。——绫小路清隆 首先,从生物学的角度看,人类作为社会性动物,天生就具有与他人互动和合作的本能。无论是在原始社会还是现代文明中,人类都需要通过集体合作来确保生…

萧县做网站微信公众号跳转的网页怎么制作

客户介绍 某科技股份有限公司作为一家在金融科技行业有着20余年经验的公司,见证了金融科技行业的电子化、信息化、移动化和数字化的发展进程。该公司致力于为金融机构提供领先的产品和专业化服务,其业务涵盖应用软件开发、系统集成、IT服务和IT咨询服务…

压测指标和结果分析

压测指标 压测结果分析 一、数据库死锁 1、吞吐量(TPS/QPS)突然暴跌或维持低位现象:曲线图上出现断崖式下跌,或者吞吐量无论如何增加压力(并发用户数)都无法继续上升,维持在一个很低的水平。 原因:发生死锁后,…

指令流水线

1.分析每个阶段的微操作序列 2,写出对于的机器指令和微操作命令一集节拍安排 ​ 写出每个周期苏哦需要的微操作(参考硬布线) ​ 补充为程序控制器特有的微操作 ​ a取址周期 ​ A d(CMDR)->CMAR ​ OP(IR)-&g…

nuget控制台乱码的解决办法

在nuget控制台执行如下命令: [Console]::OutputEncoding = [System.Text.Encoding]::UTF8作者:xuejianxiyang出处:http://xuejianxiyang.cnblogs.com关于作者:Heaven helps those who help themselves.本文版权归原…

完整教程:Android 自定义电池组件(BatteryView)

完整教程:Android 自定义电池组件(BatteryView)2025-09-22 16:03 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; displ…

安阳信息港网站wordpress翻译配置

在之前的博客中,我们使用Thymeleaf,Bower和Bootstrap构建了登录页面,并将其部署到了Heroku。 在此博客中,我们将介绍用于前端的AngularJS和在后端的Spring Boot Web服务的一些功能。 我们将从“登录/注销”部分开始。 让我们开始…

关于音乐的个人网站搜索排名优化公司

目录 第一章 引言 第二章 数据准备 第三章 贝叶斯路径规划模型训练 第四章 路径规划预测 第五章 路径执行 第六章 实验结果分析 第一章 引言 自动驾驶技术的发展带来了自动驾驶车辆的出现,而路径规划作为自动驾驶车辆的关键功能之一,对于确定最佳行…

网站关键词设置多少个深圳建筑公司排名前二十

视频生成模型,如 Stable Video Diffusion 和 Videocrafter,已经能够生成合理且高分辨率的视频。但这些技术进步也带来了被恶意利用的风险,比如用于制造假新闻或进行政治宣传。因此,来自弗吉尼亚大学和亥姆霍兹信息安全中心&#x…

网站 建设方案合肥市建设建筑网站

若该文为原创文章,转载请注明原文出处 本文章博客地址:https://hpzwl.blog.csdn.net/article/details/131901444 红胖子(红模仿)的博文大全:开发技术集合(包含Qt实用技术、树莓派、三维、OpenCV、OpenGL、ffmpeg、OSG、单片机、软…