Your class should be a limousine
The master was reminiscing about the days he spent learning The Pragmatic Programmer.There was even more wisdom to be learned from the book, now more than ever.The apprentices were given hardcover copies of the book to posses the wisdom he now possessed.With young age, blunders come fast.Apprentices were gulping it down like it was some pulp fiction novel.Master was agonised over it.Just then an apprentice came for some advice.
He had implemented a code that could possibly fit the description of a spaghetti code(no offense to FSM ofcourse).There were dependencies which were not easy to percieve or understand.The master just concentrated on one specific set of issues.
class Ninja
def initialize(dressing, katana, shuriken, shoes, height, weight)
@katana = katana
@dressing = dressing
@shuriken = shuriken
@shoes = shoes
@height = height
@weight = weight
end
def efficiency
@height * Weapon.new(katana, shuriken).rating
end
def fitness
14400 - @height * @width
end
end
class Weapon
def initialize(sword, extra)
@sword = sword
@extra = extra
end
def rating
sword_rating * extra_rating
end
def sword_rating
case @sword
when 'longsword'
5
when 'katana'
9
when 'indiansword'
6
else
0
end
end
def extra_rating
case @extra
when 'shuriken'
7
when 'knife'
4
when 'musket'
8
else
0
end
end
end
There were a lot of hidden dependancies in the code.If the Weapon
class changed then the Ninja
class also had to change.A matter of irreversibility, mused the master.Master asked the student to come with him to shrine.They took a normal oxen cart which had wooden wheels.At each of the gutters the apprentice feared the worst.When they reached the shrine, apprentice was left breathless.Master and apprentice came back from the shrine.Master had ordered a limousine this time.While there were still gutters, he did not face any issues.
When they reached the dojo master asked the student about which mode of transport would he prefer next time.Student without hesitating replied Limousine
.Master smiled and asked him why? Because it was more comfortable.Master asked the student why was it more comfortable? The student replied that it was because of the good tires.Master smiled and said
Just like the vehicle's tires prevented the vehicle from depending on road your class must also prevent the external dependancies.Your class should be like the limousine.