Everything Joachim Tuchel wrote about this is fine EXCEPT that
this is an Exercism task, where Roelof has to implement an API
that he is given and is not at liberty to do it right.
Thanks to the way that IsbnVerifierTest is structured,
- the IsbnVerifier class has NO use for ANY variables of ANY
�� kind: no instance variables, no class variables, and no
�� class instance variables.
- the IsbnVerifier class has only ONE method that is called,
�� and that is on the INSTANCE side.
That is, it's a simple pure function disguised as an object.
A good design might have an ISBN class, and would put
#isValidISBN10: and #isValidISBN13: on the class side.
But to solve the Exercism exercises, you HAVE to implement
the API that the test class is expecting, not something
better.�� If it passes the tests, it is by definition right.
If it doesn't, it is by definition wrong, even if it is a
far better design.�� So
��- one class, IsbnVerifier
��- with no variables of any kind
��- with one and only one method, #isValidIsbn,
���� on the instance side.
It all gets so much clearer when you realise that the Exercism
tasks are NOT designed to teach Object-Oriented Design.�� The
problems have to serve many programming languages, some of
which, like bash and x86 assembly code, are not object-oriented.