Ios 敏捷的让所有课程都成为期末考试?

Ios 敏捷的让所有课程都成为期末考试?,ios,swift,final,Ios,Swift,Final,我的问题是关于使用final关键字im Swift代码。我知道final可以帮助编译器更快地编译代码,因为动态调度。所以,如果我确实知道我不会继承我的一些类,我是否应该将它们全部设置为最终类?如果您是110%,那么您可以这样做,您不会尝试对任何“最终”类进行子类化,因为如果您这样做,您的项目将不会编译 下面的文章提供了一些很好的信息,应该可以帮助您做出决定 有一种保护方法是由 方法是,定义所有APIprivate。它增加了封装。稍后,如果你需要放弃一些东西,那么删除隐私 因为用另一种方式(即设计

我的问题是关于使用final关键字im Swift代码。我知道final可以帮助编译器更快地编译代码,因为动态调度。所以,如果我确实知道我不会继承我的一些类,我是否应该将它们全部设置为最终类?

如果您是110%,那么您可以这样做,您不会尝试对任何“最终”类进行子类化,因为如果您这样做,您的项目将不会编译

下面的文章提供了一些很好的信息,应该可以帮助您做出决定


有一种保护方法是由

方法是,定义所有API
private
。它增加了封装。稍后,如果你需要放弃一些东西,那么删除隐私

因为用另一种方式(即设计一些公共的东西,然后再改为私人的东西)是不好的


同样地,我认为让一个类
成为最终的
然后再决定它不应该是最终的比让一个类成为非最终的要好,由于某些设计决策,允许多个类对其进行子类化,然后稍后尝试将其还原为
最终版本。

如果您的应用程序或框架使用协议而不是继承,则您可以将类类型定义为最终版本


如果您更喜欢使用协议继承,并且您的应用程序或框架使用单元测试进行测试,那么在将类类型用于依赖项对象时,不要将它们定义为final,因为它们将无法模拟。

因此,如果我确实知道我不会继承我的一些类,我是否应该将它们全部设置为final?同样地,我认为让一个类成为final,然后再决定它不应该是final,比让一个类成为non-final要好,允许多个类对它进行子类化,然后因为一些设计决定而尝试将它还原回final。我认为这是有意义的,谢谢!只是不要盲从于此。开发人员知道什么时候出现异常才有意义。。。