[Tutor] Program review
Ricardo Aráoz
ricaraoz at gmail.com
Sat Jan 5 22:28:21 CET 2008
Kent Johnson wrote:
> Ricardo Aráoz wrote:
>> Ok, here is a corrected new version, I hope.
>>
>> Kent, the fact that Mensaje.__init__ reads the message configuration is
>> by design (it's a feature, not a bug ;c) ).
>
> You misunderstood my suggestion. I would add a method to Mensaje that
> creates the email.MIMEMultipart.MIMEMultipart() currently done by
> Correo.__init__().
>
> Almost every line of Correo.__init__() is reading data from attributes
> of mensaje. This is a code smell called Feature Envy and is a clear sign
> that the code is in the wrong place.
>
> In Mensaje you could have
> def createMessage(self):
> messg = email.MIMEMultipart.MIMEMultipart()
> messg['From'] = self.De
> messg['To'] = self.Para
> messg['Subject'] = self.Encabezado
> messg['Reply-To'] = self.ResponderA
> messg.preamble = 'This is a multi-part message in MIME format'
> messg.attach(email.MIMEText.MIMEText(self.html, 'html'))
>
> Then in Correo.__init__() you would have
> self.messg = mensaje.createMessage()
>
> It doesn't change the functionality but it is a better design.
>
I see, yes it is better, I'll correct it. Thanks
More information about the Tutor
mailing list