-OOP限定-プログラム設計相談室
■ このスレッドは過去ログ倉庫に格納されています
0478471
2011/03/09(水) 01:13:47.95462は別人。471のPDFを読めば馬鹿でも分かるように書かれている。読むべき箇所も示した。
それでももっと噛み砕いて説明しないと分からないのか…。
いちおう試みてみるけど、まぁ俺には無理だなw
> はっきりしておかなければならないこととして、100%閉じたプログラムというものは
> あり得ないということがあります。
(中略)
> 一般的には、モジュールがどんなに頑張って閉鎖したつもりでも閉じていない部分が
> 必ずあって、それに対して何らかの変更が起きてしまうものなのです。
と書いてあるだろ?
お前が>>431から話しているのは、閉じていないものをどうやったら外見上閉じているもの
として扱えるか?という本末転倒な話なの。メタクラスで追加なんてその典型。
既存のソースコードを変更しないから閉じているのではなく、OCPを満たした閉じている
プログラムは必然的に既存のコードの変更が必要なくなるということ。
意図せず開いてしまったものは、当然だけど変更せざるを得ない。
PDFのShapeの例だと「Listing 2」はその時点ではOCPを満たしていると考えられるが、
描画順序というルールの導入に対しては開いていて、「Listing 3」への変更はコードを
変更することでしか対処できない(そしてPDFでもメソッドの追加という変更をしている)。
この「Listing 2」から「Listing 3」の変更は>>431の状況の具体例と考えられる。
頑張ってみたけど駄目かねぇ…
しかし間違いに気づいたら素直に認めてくれよ。俺も認めるからさ。
■ このスレッドは過去ログ倉庫に格納されています