Hacker News new | ask | show | jobs
by fenomas 694 days ago
I'm not a big thinker on such things, but my general rule is that subtyping is okay only for implementation details.

I.e. it's okay for ConsoleLogger to be a subtype of Logger, but PaidUser probably shouldn't be a subtype of User.

1 comments

So interfaces > modelling

ConsoleLogger is a Logger because they share a method (log), PaidUser and User can have some common things, but I don't think it's only in the way it behaves, but also in the way you contact/use them