- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
这是一个风格问题,并且在公共(public) SDK 的上下文中,由于向后兼容性要求,无法删除方法。
我在某些地方看到,当添加方法的新版本时,它将具有相同的名称,但有一些数字前缀,例如,
void doTheThing2(...) {...};
乍一看,这非常丑陋,并且显然没有做任何事情来传达方法中的实际差异。另一方面,我发现它通常更难看,有时甚至不可能捕获名称中方法的“版本 2”中的语义变化。例如,
boolean doTheThingButReturnResultCode(...) {...};
如果你有该方法的版本 3,那又怎样呢?
显然我是用 Java 编码的,但这个问题并不是 Java 特有的。我意识到这里没有客观的答案,但希望得到一些理性的意见。
最佳答案
我会说这是不鼓励的,但并非无效。我认为您对于在公共(public) API 中的相当长一段时间内保持方法的向后兼容性有非常正确的想法,并明确公布了弃用期限。
后缀的一个问题是,新方法最终(比如在 1-2 个主要 API 版本之后)将成为主要使用的方法。然而,这破坏了程序员的工作流程——你会得到一个仍然附加在方法上的遗留后缀。即使在此之前,method()
和 method2()
之间的含义通常也没有明确的约定。
由于英语是一种富含同义词的语言,因此我发现这些同义词在方法级别上优于版本后缀。这通常不会牺牲清晰度和简单性。例如,addItem()(已弃用)
可能会变为 storeItem()
。当 API 中的多个位置都可以遵循新的命名约定时,这种方法尤其有效。然后 addWidget()
和 addWudget()
变成 storeWidget()
和 storeWudget()
。
您可以看到这种同义词方法存在于 Java 和 Python API 本身中 - 它们很少使用数字后缀。也许String.subSequence()
方法可以被视为String.substring()
的版本2。
数字后缀的另一个问题是不清楚该数字是什么版本。它是该方法的一个版本吗? API 的?一年? Java 版本? API 主要版本可能最有意义,但如果不添加更长的后缀(如 addItemJava2()
或 addItemV2()
),就很难一致地给出此上下文。在主要 API 版本更改后,使用孤立的数字后缀也会变得不直观。现在 API 版本为 5,我应该使用 addItemv3()
吗?
我发现数字后缀在接口(interface)和类名称中使用得更有效。也许这是因为它们通常是名词,而不是动词,而动词在方法名称中更常见。拥有 CarModel2
比 drive2()
更有意义。或者也许因为它们是接口(interface),一致的上下文更容易在 API 的更广泛的表面上强加,因此 API 的用户会发现。
由于这涉及风格,其中一些可能是主观的,但这些是需要考虑的一些设计压力。
关于java - 方法 : is it a valid style? 的数字后缀(例如 myMethod2()),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55520784/
这两个文件之间的主要区别是什么:styles.xml (res\values\styles.xml) 和 styles.xml (res\values-v21\styles.xml ? 针对旧的and
我正在尝试将按钮样式设置为看起来像我在 Android Full Width ICS style Minimalist Bottom ButtonsViews 中询问的那些按钮. 我已经成功了,有兴趣
只是想检查一下: 如果我有 Style.css 和 Style.min.css(在同一目录中)并且我的 html 页面引用了 Style.css,浏览器/服务器是否会下载 Style.min.css?
就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引起辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the he
从上面的问题,我认为这会相对容易,但我找不到任何关于如何向“样式”下拉菜单添加样式的文档。谁能把我推向正确的方向? 最佳答案 样式下拉列表会根据主题的typography.css 文件中的类自动填充。
我有两种风格 还有这个 如果我尝试在这样的对象上使用第二个 编译器抛出这个错误: 错误 16 Style 对象不能影响它所应用的对象的 St
我想知道是否有关于在 Lisp 中使用标签的标准做法。我一直在弄乱这里第一个答案中描述的算法的 Lisp 实现 Generating permutations lazily我当前的版本使用标签来分解部
我想以编程方式获取样式为“ButtonBar”的 LinearLayout 的背景颜色。 我试过用LinearLayout的getBackgroundColor,没找到方法。 有人有想法吗?问候 最
我在扩展 javax.swing.text.DefaultStyledDocument 的类中遇到间歇性问题。该文档正在发送到打印机。大多数情况下,文档的格式看起来是正确的,但有时却并非如此。看起来格
我想将所有元素设为边框。我想这样做: * { box-sizing: border-box; } 如何使用 React 的内联样式做到这一点?我不想在每个组件中都写这个规则... 最佳答案 这是不
当我创建一个 Android 应用程序项目时,我在 (android:theme="@style/AppTheme") 上的 AndroidManifest.xml 中出现错误 找不到与给定名称匹配的
一种风格ol.layer.Vector可以设置为 ol.style.Style ,样式函数或 ol.style.Style 的数组.数组的用途和作用——与仅传递 ol.style.Style 相比目的
我的意思是内部风格 #div {color:red;} document.getElementsByTagName('style').innerHTML 不工作... document.style
http://synergine.net/rain.php 你好。我试图清除 .ripple div 中所有元素的样式属性,但没有成功: function contact(level){ focus_
我使用 vue 和 v-for 循环来创建跨度。以下是使用 bootstrap4 的背景颜色的一种样式的成功: {{ group }} export default {
有没有办法只存储元素的当前样式状态,这样我就可以搞砸样式然后再重置它? 类似于(虽然这不起作用):http://jsfiddle.net/843Pj/ var el=document.getEleme
我正在尝试将 tinymce 配置为不允许在 style 属性中使用 css 样式。 我只想允许一种样式,即文本装饰。这是一个类似的问题 http://tinymce.moxiecode.com/pu
我对style.css做了一些修改,上传到网上。但是它没有显示我需要的结果。即它仍然采用旧的 style.css 代码。 我可以离线查看更改,但是当我给它完整的 href 链接时,它没有显示必要的结果
我添加到 web 文件夹下的样式文件夹似乎没有被我的 JSP 上的调度程序 servlet 映射。我明白了 WARN : org.springframework.web.servlet.PageNot
是否有任何用于 JQuery 数据表的 Metro Style CSS 样式插件? 最佳答案 看看here 或者您可以自己创建一个。 Metro 风格很容易用 Segoe 字体复制 关于jquery
我是一名优秀的程序员,十分优秀!