首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >私人计算财产放在哪里?

私人计算财产放在哪里?
EN

Software Engineering用户
提问于 2018-04-10 08:30:32
回答 2查看 294关注 0票数 2

在Clean中,建议私有助手函数始终存在于直接在其内部使用的函数下面。在使用计算属性时,我应该这样做吗?将私有实例变量放在类的顶部是一种规范,但对于本质上是助手函数的情况,我觉得这样做令人费解。

将我们的实例变量保留在类的顶部而将帮助函数保存在底部的约定在这里是有冲突的。我是不是应该为了会议而把它当作一种功能?把它保持在原来的位置还是把它放在班级的首位?

代码语言:javascript
复制
/// Done button in nav bar should let know that tapping will dismiss the view
func applyVoiceOverToNavigationBar() {
    guard timelinesAreInitialized else { return }
    let openDay = Scheduler.sharedInstance.timelines[SharedGlobals.Calendar.SELECTED_DAY].DAY.dayName
    self.navigationItem.rightBarButtonItem?.applyVoiceOverAccessibility(
        label: self.navigationItem.rightBarButtonItem?.title ?? "",
        hint:"VoiceOver.OpenScreenHint".localized.replacingOccurrences(of: "{Screen}", with: openDay))
}

private var timelinesAreInitialized: Bool {
    return Scheduler.sharedInstance.timelines.count > SharedGlobals.Calendar.SELECTED_DAY
}
EN

回答 2

Software Engineering用户

回答已采纳

发布于 2018-04-10 13:36:58

在使用计算属性时,我应该这样做吗?将私有实例变量放在类的顶部是一种规范,但对于本质上是助手函数的情况,我觉得这样做令人费解。

不管算不算,先不涉及细节是很好的。先给我讲个高层次的故事。

破坏我论点的最可靠的方法是使用蹩脚的名字。在定义timelinesAreInitialized之前,我并不介意阅读它。为什么?因为它的名字表明了你的意图非常清楚。

我知道这与许多语言中的惯例背道而驰,任何代码库都应该是一致的,但在所有其他条件相同的情况下,这才是更好的风格。

举行一次会议有利于保持一致性。但这意味着你不能遵循今天最好的智慧,因为你已经将过去最好的智慧庄严载入史册。当有机会彻底突破时,不要重复过去的错误。

票数 2
EN

Software Engineering用户

发布于 2018-04-10 14:50:39

将私有实例变量放在类的顶部是一种规范

我曾经尝试过不这样做,因为在我看来,这似乎是一种无稽之谈。我和CandiedOrange在一起,把更大的图片放在顶部,细节放在底部。但是,至少对于C#来说,当我编辑文件时,编译器真的太容易混淆了,这意味着它经常忽略这些字段,并报告了很多行上的错误。

因此,出于务实的原因,我现在坚持这一惯例。所有其他私人的东西都会被推到它所属的地方:属性,内部类型,方法等等。我的意思是底层:所有私人成员都是在所有公共成员之后出现的。

票数 0
EN
页面原文内容由Software Engineering提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://softwareengineering.stackexchange.com/questions/369125

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档