in reply to Re^3: Inheritance - calling parent constructor
in thread Inheritance - calling parent constructor

I thought I have read that re-blessing is bad

More accurately, it shouldn't be needed. If it's needed, it's a sign something else is wrong.

  • Comment on Re^4: Inheritance - calling parent constructor

Replies are listed 'Best First'.
Re^5: Inheritance - calling parent constructor
by JavaFan (Canon) on Dec 29, 2009 at 23:33 UTC
    But you only know whether something is wrong if you actually peek in the code of the parent class1. But that means breaking encapsulation2, which you aren't supposed to do when doing OO.

    I would leave in the bless. At worst, it's redundant. At best, it fixes something the parent does wrong.

    1 And keep peeking. If it's ok now, it may no longer be ok tomorrow after the sysadmin upgraded some packages.
    2 Of course, the code of the OP already assumes the parents constructor returns a hashref. So the OP has already sacrificed one the pearls of OO already.

      But you only know whether something is wrong if you actually peek in the code of the parent class

      No, no peeking necessary. I have no idea what you're talking about.

      At worst, it's redundant.

      It's usually redundant, but it's not the worst case. At worse, the parent (and thus the child) malfunctions (obviously or subtly).

      At best, it fixes something the parent does wrong.

      At best, it's a workaround for a bug in the parent? If there's a bug in the parent, fix the parent. Don't use a workaround just in case you might need it.

        If there's a bug in the parent, fix the parent.
        That assumes you control the parent.