(やや過激な)コメントを頂いたので、自分なりの回答を書きます。

まず、ひがさんの2007-06-21 - yvsu pron. yasでこんな記事が紹介されていました。

Domain ModelとTransaction Scriptについての話題で、まぁ昔からよく言われている話です。特定の方法論について、どちらが優れているとかどちらがコストがどうとか基本的にそういう議論は不毛だし、明確な答えって多分ずっと出ないと思っています。
それは、「使う人」がいて初めて技術は技術と言えて、しかも使う人は十人十色だからです。


新人やTransaction Scriptを是とするプロジェクトで生きてきた人でこれからもそのつもりなのであれば、継承を理解していなくても仕方ないと思いますし、それで良いと思います。こういった人が、例えばJavaC#などのOOPL(Object-oriented programming language)を使う分にも、問題は無いと思います。

個人的にちょっと許せないのは、オブジェクト指向を理解していない人がOOPLを使ったアプリケーションの方式設計に携わる事で、特にJava-Webの際に変な静的フィールドをいっぱい持った変なクラスをたくさん作られてしまった事があるだけに、凄く警戒しちゃいます。(多分その人は、グローバル変数と共通モジュールのつもりだったんだと思います。が、スレッドセーフになってない。Webなのに。)

そういった話でなければ、継承くらい知らなくても問題ないんじゃないですかね。OOPLを使ったプロジェクトで方式設計の担当者とか、プロジェクト内のテクニカル・リードを担当するような人がこうだったらかなり痛いし、周りの人は大変だなぁとは思いますが。


オブジェクト指向は、考え方と紹介される事が多いです。
でも、オブジェクト指向は所詮システムを作る為の技術の一つです。最近の傾向から、システムを作る上で非常に重要な要素になりつつありますが、それでもシステムを作る技術の一つという枠から出てきてはいません。メリットとデメリット、リスクとコストを秤にかけて、折り合いが付かなければ使わなくても全然構わない技術だと自分は思います。

もちろん、オブジェクト指向が問題なく使える状況であれば、自分はOOのメリットを享受したいので積極的に使おうとします。例えば変更への強さ(=保守性の高さ)が欲しい場合、OOの発想は非常に有効です。しかし、そもそも変更作業を自分でやらないかも知れない場合、あまりコテコテにして誰もメンテナンスできなくなっても、それはそれで保守性が高いとは言えません。目的はあくまで保守性を高める為なので、OOの使用で保守性が下がるようなプロジェクトであれば、使わない方がずっと保守性に貢献していると思います。