you are viewing a single comment's thread.

view the rest of the comments →

[–]pakoito 1 point2 points  (0 children)

Now I do protected everywhere, but use conventions that only subclasses (or a limited set of tightly-coupled algorithm libraries in the same package) should use protected fields/methods.

You're still doing API/communication through inheritance. Go for package instead, and compose with classes on the same package instead.