public/protected/private:OOPにおける冗長な機能?

2025-06-19

この記事は、オブジェクト指向プログラミングにおけるアクセス修飾子(public、protected、private)の必要性を問いかけています。著者は、インターフェースと継承の組み合わせによって、追加のメカニズムなしで同じ機能を実現できると主張しています。アクセス修飾子の存在は、Simula言語の設計上の見落としによる冗長な機能である可能性があると示唆しています。よりクリーンなコードのために、著者はアクセス修飾子の使用を避け、継承よりも合成を推奨しています。

続きを読む

継承:偶然の性能向上策

2025-05-08

Simulaが継承を発明したのは、コードの再利用や拡張性のためではなく、単純なガベージコレクションと侵入型リストに関する問題を解決するためでした。Simulaのガベージコレクタは、スタック変数へのポインタを処理するにはあまりにも単純でした。クラッシュを防ぐために、さまざまなパラメータ渡し方法が禁止され、表現力が制限されました。侵入型リストを効率的に使用するために、Simulaは「プリフィックス」(継承)を発明し、オブジェクトがリストノードを直接含めることを可能にし、追加のメモリ割り当てを回避しました。したがって、継承は当初、パフォーマンスの最適化であり、OOPの礎石ではありませんでした。

続きを読む
開発