Objects and validation

P

python

I have a routine in Python which is extracting information from a
website. This information is read and inserted into objects.

I currently have all the validations and checks implemented in the
routines which are reading the HTML and creating the objects. It is
however also possible to move all the validations into the class itself.
What is considered the best practice for this: validation in the
functions which read the information and creates the objects or in the
class itself?

Thijs
 
P

pakalk

I have a routine in Python which is extracting information from a
website. This information is read and inserted into objects.

I currently have all the validations and checks implemented in the
routines which are reading the HTML and creating the objects. It is
however also possible to move all the validations into the class itself.
What is considered the best practice for this: validation in the
functions which read the information and creates the objects or in the
class itself?

setter

Data sources may differ, and may be used for many reasons, so
validating data there is not a good idea. Object has to keep correct
data, so it should validate it. If you want to have object created no
matter what, you can add validate() method, but you may also use
setters for this - error will be raised every try to set wrong data.
 
B

bruno.desthuilliers

I have a routine in Python which is extracting information from a
website. This information is read and inserted into objects.

I currently have all the validations and checks implemented in the
routines which are reading the HTML and creating the objects. It is
however also possible to move all the validations into the class itself.
What is considered the best practice for this: validation in the
functions which read the information and creates the objects or in the
class itself?

There's no one-size-fits-all answer to this question. Part of the work
really belongs to the layer that accepts data from the outside world,
part of it belong to the 'model' object itself. In any case, the
'model' object shouldn't have to worry about data conversion etc -
like, if one of the attribute is supposed to be a datetime, it's the
client code's responsability to provide a proper datetime object, not
a string that may (or not) be the textual representation of a date and
time.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,769
Messages
2,569,579
Members
45,053
Latest member
BrodieSola

Latest Threads

Top