这可能是一个非常基本的问题,但这是我实际遇到的问题,因为我正在学习更多关于Actionscript 3的内容。但是,我的第一个问题非常笼统:何时适合将功能放在新类而不是同一类中的新函数中?根据这个关注基本面向对象原则的Java tutorial,一个类应该是一个“对象的蓝图”。我总是理解这意味着对象将使用的任何功能或行为都应该包含在类中。但是,根据single responsibility principle,每个班级应该只有一个改变的理由。例如,您应该有一个类来编译报表,一个类来打印它而不是单个Report类。
你能帮我理解创建新课程的利弊吗?将对象拆分成多个类的成本是多少?将相关功能保留在同一个类中,还是将其拆分为两个,是否存在编译时或性能成本?是否有时候你可能希望将事情分开,而你可能希望在其他时间将它们保持在一起?
答案 0 :(得分:0)
据我记忆,有一个可以做所有事情的类或几个可以做同样的类之间没有大的区别。
这是关于可读性以及如何扩展代码。它也只是干净的代码和耦合。
如果您有一个名为“Printer”的类,则不希望其中包含“WaterCoolerSound()”。当然,你拥有的对象越多,你的内存就越少。但是我不完全确定一个具有所有功能的对象或具有相同功能的几个类是否分散开来,会占用更多内存。
事实上,你可以说,如果你只需要一个小包来保持一些数据并且不能同时像熊一样跳舞,那么有两个单独的类是有意义的。
建议您在获得代码之前不要考虑性能。当然,从可维护性和可理解性的角度来看,较小的类,使用较小的方法是优越的。 (再次参见单一责任原则:)
答案 1 :(得分:0)
不要因为只为一个函数创建类而感到困惑。一个类应该只有相关的函数。如果函数是不同类型的,它们将完全不同的功能并使用完全不同类型的变量,那么只有你应该创建一个单独的类。