I used to name them by the type of the parameters passed in, for example:
let dictionary = ["name": "Sneakers", "price": "40"] let product = Product(dictionary: dictionary) let viewModel = ProductViewModel(product: product)
But lately, I've been using a more Swifty approach, by having an external name of
let dictionary = ["name": "Sneakers", "price": "40"] let product = Product(from: dictionary) let viewModel = ProductViewModel(with: product)
How do I pick between the two? I go with the following approach:
- if the object relies entirely on the parameter, I use
- if the object has other properties, independent on the parameter, I use
In our example above, the
product is a model, and models are usually created entirely from a dictionary (a JSON), while the
viewModel might have other properties, like
numberOfRows for a
buttonTitle - "Buy" or "Sold Out", for example.
Is the difference too subtle and not worth stressing over? Or does it slightly improve the semantic? Let me know what you think @rolandleth.