少し具体的な話をしよう。

コードとデータをまとめて1つにし、インターフェースを決める。
こうすると、組み替えの自由度が高まり、再利用が容易になる。
また、インターフェースが限定されるので、保守も容易になる。

OO言語を用いていなくても、こういうOO的な発想で作られた
ものは数多くある。例えばUnixやWindowsのデバイスドライバ。
同じFSコードを、いろんなデバイスに対して再利用できる。
例えばGUI部品。基本的な描画プロトコルはすべての部品に
対して共通だ。(GUIはもともとOO言語で開発されたわけ
だけど…。XやMacやWinのウインドウシステムでは、
CやPascalでOO的な機能を実現しようといろいろ
工夫している。)