А если бы не нужно было знать например, сколь осталось зеленых носков, а просто сколько осталось носков, тогда характеристику можно было бы сделать реквизитом?
(4) аа, ну да, по реквизитам не построить остатков и оборотов, а только движения... а на одних движениях сума-сойдешь, геморой...
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший