| >Right but now it’s also raining and a full moon and the goblin is a werewolf and wands also have AOE spells that hit multiple opponents, except when those opponents are blocking… >the data oriented approach works exponentially better as the object interactions become more complicated Maybe it's just me, but I still don't see the difference. To use your example, you'd have a function like: cast(caster, targets, weather, time, location) or you can create an object and call it something like Spell and do something like: class Spell def initialize(caster, targets, weather, time, location)
...
end
def valid_target?
...
end
def valid_caster?
...
end
endPerhaps it's just my mental conception of things. My mental model of a class is a data structure plus a bunch of functions that implicitly take the data structure as a parameter. I realize that there can be more to it than that but it works for the purposes of this discussion. Ultimately it's a code organization question either way. The original question is what class does it go in? Changing it to data structure + functions just changes the question to what module/file does the cast function go in? Maybe that's an easier question to answer but I guess I just don't see it. |
That's not OO. A class without instantiation is just namespacing.