[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