I’m a C programmer and I’m getting quite good with Python. But I still have some problems getting my mind around the OO awesomeness of Python.
Here is my current design problem:
The end “product” is a JSON data structure created in Python (and passed to Javascript code) containing different types of data like:
{ type:url, {urlpayloaddict) }
{ type:text, {textpayloaddict}
...
My Javascript knows how to parse and display each type of JSON response.
I’m happy with this design. My question comes from handling this data in the Python code.
I obtain my data from a variety of sources: MySQL, a table lookup, an API call to a web service…
Basically, should I make a super class responseElement and specialise it for each type of response, then pass around a list of these objects in the Python code OR should I simply pass around a list of dictionaries that contain the response data in key value pairs. The answer seems to result in significantly different implementations.
I’m a bit unsure if I’m getting too object happy ??
In my mind, it basically goes like this: you should try to keep things the same where they are the same, and separate them where they’re different.
If you’re performing the exact same operations on and with the data, and it can all be represented in a common format, then there’s no reason to have separate objects for it – translate it into a common format ASAP and Don’t Repeat Yourself when it comes to implementing things that don’t distinguish.
If each type/source of data requires specialized operations specific to it, and there isn’t much in the way of overlap between such at the layer your Python code is dealing with, then keep things in separate objects so that you maintain a tight association between the specialized code and the specific data on which it is able to operate.