Benefits of using class func vs func vs no class declaration

后端 未结 3 894

Ok so I have a a bunch of helper functions in my project that I originally had in a class called Animate. I was wonder what are the benefits of declaring func vc class func.

3条回答
  •  醉梦人生
    2020-12-16 18:37

    Ok. Instance methods vs class methods vs global methods.

    (The term method and function are interchangeable. Method implies a function implemented by an object, so I tend to prefer the term method to the term function.)

    An instance method is a method that is performed by instances of a class. You must have an instance of that class to talk to in order to invoke an instance method.

    Instance methods have access to the instance variables of the object they belong to, so the object can save state information between calls. (In a networking class you could create multiple download objects, each of which manages an individual file download of a different file from a different URL, and each might have a different delegate it notifies when it's download is complete)

    Class methods are invoked by the class itself, not by an instance. This can make it simple to invoke helper functions without having to manage an object to do that work for you. Since class methods don't talk to an instance of the class, they can't preserve different state information for each object. You might have a utilities class that performs localization functions on strings for example. The localization process is self-contained. You call a class function and pass in a string and the language you want it localized to, and it hands you back a result. No need to keep state between calls. Such a call might look like

    let frenchString = 
      LocalizationUtils.localizeString("English String", 
        toLanguage: "French")
    

    Global functions do not belong to any particular class. They are global to the entire module in which they are defined. They are similar to class functions, except that they are not specific to a particular class.

提交回复
热议问题