in reply to The need to rebless (was: Informal Poll: Traits)
in thread Informal Poll: why aren't you using traits?
I have objects that are lazily evaluated using rebless. Basically the objects represent a pricing scheme. Until $obj->price() is called the objects are just a hash of the parameters required to run a query out of the DB to get the data and are of the class 'Pricer::Stub', when Price::Stub::price() is called the routine extracts the required data and converts itself into a real Pricer object. And then calls price() a second time on the new object.
Code using the Pricer object never knows or cares which object type is involved, as the Pricer objects are manufactored by a factory object.
I used this because the $obj->price() method is called very often, and thus I didnt want conditional logic in the price() method itself to handle this behaviour. Personally I think this is a very effective design pattern and I'm happy to use it.
|
|---|