我的问题是关于使用最终关键字im Swift代码。我知道final有助于编译器因动态调度而更快地编译代码。所以,如果我肯定知道我不会继承我的一些课程,那么我应该让所有课程都是最终的吗?
答案 0 :(得分:3)
iOS Stanford course教导了这种保护性方法。
方法是,定义所有API private
。它增加了封装。如果你需要放弃一些东西,那么以后删除隐私。
因为相反的做法是不好的,即设计公开的东西,然后将其改为私有。
同样在这里,我认为创建一个类final
然后决定它不应该是final是比使一个类非final更好,允许多个类将其子类化然后再尝试将其还原由于某些设计决定而导致final
。
答案 1 :(得分:1)
你可以这样做,如果你是110%,你赢了,并试图继承你的任何一个'最终'课程,因为你的项目如果你这样做就不会编译。
以下文章提供了一些很好的信息,可以帮助您做出决定。
http://blog.human-friendly.com/the-importance-of-being-final
答案 2 :(得分:0)
如果您的应用程序或框架使用继承协议,那么您可以将类类型定义为finals。
如果您希望对协议使用继承,并且您的应用程序或框架已通过单元测试进行了测试,那么当它们用于依赖对象时,请勿将您的类类型定义为finals,因为它们将无法被模拟