encapsulate 唔一定要OOP先做到,不過以前無咁多language選擇,而java/c#/obj c崛起令class稱霸一時,所以變左多數人淨係識喺oop用closure
js es6有class去簡化左function+prototype嘅用法,但其實closure+getter/setter 一樣可以做到,到頭來都係睇下你用嘅language offer咩比你,就好似golang無class概念,逼你compose, 咁大家咪唔用class
你講嘅問題應該係premature abstraction, 就算唔係oo, 格硬將d function抽出黎都係同樣