Mówiąc prosto: słaba separacja problemów w kodzie, prowadzi do kodu, który nie jest modułowy, prowadzi do słabego ponownego użycia, prowadzi do duplikacji kodu.
Jeśli nigdy nie spróbujesz powtórzyć funkcji, nie otrzymasz duplikatu kodu, a wiele zmiennych instancji nie będzie problemem.
Jeśli spróbujesz powtórzyć funkcjonalność, kodu monolitycznego, który nie jest modułowy, nie można ponownie użyć. Robi za dużo i może robić tylko to, co robi. Aby zrobić coś podobnego, ale nie tego samego, łatwiej jest wycinać i wklejać niż rozbijać monolityczny kod. Programiści z doświadczenia wiedzą, że powielony kod to droga do piekła.
Tak więc chociaż sama zmienna instancji nie jest główną przyczyną problemu, to silny „zapach”, że problem nadchodzi.
Język „nie może być daleko w tyle” jest słabszy niż stwierdzenie „z pewnością trzeba iść za”, więc autor nie twierdzi, że tak się musi stać, ale w końcu się wydarzy; jeśli chcesz ponownie użyć funkcji, ale nie możesz, ponieważ kod nie jest modułowy.
n
zmienne boolowskie na przykład tworzą wewnętrzną przestrzeń stanu2^n
. Najczęściej twój obiekt nie ma tak wielu obserwowalnych stanów , ale ponieważ wcisnąłeś cały ten stan w jeden obiekt, wewnętrznie nadal musisz sobie z nimi poradzić.