Почему в классах из стандартных java-библиотек так много кода?
Есть хорошее правило, которое называется "правило 10 - 50 - 500". Оно означает, что в идеале:
- В пакете должно быть не более десяти классов;
- В методе не более 50 строк;
- В классе не более 500 строк;
Если не сильно нарушить это правило, то, конечно ничего страшного в этом нет.
В jdk есть такая вещь, как архив src.zip
. В нём есть .java
-файлы, в которых можно посмотреть реализацию классов из java-библиотек. Именно оттуда среда разработки показывает код, когда я нажимаю на название какого-либо java-класса в своём коде в среде разработки.
Меня поразило то, что в классах огромное количество кода, а в одном пакете - гигантское количество классов. В некоторых классах количество строк достигает почти 4000, а количество классов в одном пакете может быть такое, что и половина на экран не влезет!
Вот, например, java.io.ObjectInputStream
и пакет java.io
:
Почему так? И как раньше это объясняла это sun, а теперь oracle? Ведь поддерживать такой проект тяжело, такой код противоречит принципам написания чистого кода. Я стараюсь создавать классы по принципу 10 - 50 - 500, но... после такого я уже засомневался в существовании этого принципа. Неужели в реальных проектах такого принципа нет и это всё выдумки для новичков?
P.S: я очень надеюсь, что на этот счёт есть цитаты и факты, а не только мнения.