- オブジェクト指向なんて今すぐやめてください
340 :デフォルトの名無しさん[sage]:2014/04/12(土) 00:03:30.52 ID:owT3sDzh - >>327
>まずKAC氏の>>231に答えようぜ >>231については、すでに>>330にて「仕様がないことには設計の話なんてできない」という 一般論は「長方形-正方形問題」とは無関係であり、それを設計を語らない理由とするのは詭弁である と答えている そして、その答えが正しいことは、>>231の要請を(自分が)拒否したにもかかわらず、 (以下の文章で)>>327自身が>>194の具象クラス継承に対する問題点を的確に指摘したことで実証された >長方形の要件が「高さと横幅を自由に変更できる」なら正方形はそれに当てはまらないので、 >ここでは正方形は長方形ではない。派生させたのが間違い 着眼点として、完全に正しい 長方形が高さと幅を自由に変更できるのは、>>194のsetterを伴う属性宣言の実装コードから明らか それに対して、正方形は高さと幅が常に等しくなければならないから、自由には変更できない(=すべきではない) したがって、長方形から正方形を「派生させたのが間違い」である
|
- オブジェクト指向なんて今すぐやめてください
341 :デフォルトの名無しさん[sage]:2014/04/12(土) 00:43:17.31 ID:owT3sDzh - >>338
>継承も実体化もできるクラスは何と呼ぶのよ あえて呼べば、抽象クラスと具象クラスが「混在した(mixed)クラス」になる >継承も実体化もできるクラスは、安易に作るのは危険だが、安易でなければ良いとも思う >>193はあくまで「原理/原則」のたぐいだから、 それをどこまで現実の開発に適用するかは>>210の問題点に対するリスク管理の判断になる いいかえると、最初はプログラムが動くことを優先に素早くクラスを設計し、 うまくいかなくなったら「原理/原則」に照らし合わせてレビューする(=設計を見直す) という大胆なアプローチだってアリだと思う >その安易さってのが曖昧過ぎるというなら>>283みたいなのもあるワケで 長方形と正方形の継承に関する問題の発見手段として、いくつかの方法論があっていい ただ、自分は>>283の「リスコフの置換原則(LSP)」よりも、 ・集合論を基礎にした継承の定義(>>335)、および ・「抽象クラス-具象クラス」という概念(>>193) のほうが単純明解ではないかと思う、というだけの話 どちらが分かりやすいかは人によって異なるはずだから、納得できるほうを選べばいいんじゃないかと....
|
- スレ立てるまでもない質問はここで 135匹目
252 :デフォルトの名無しさん[sage]:2014/04/12(土) 01:17:36.87 ID:owT3sDzh - >>228
いわゆるInternetが爆発的に普及し始めたおよそ20年前、 (それは>>233の言語が誕生した時期とほぼ重なる....) プラットフォーム間の移植性という難しい問題に対して C言語では GNU autoconf/automake といった支援ツールが 実用レベルで開発され、ほどなくOSSの世界で標準として認知された それに対してC++は言語仕様の標準化が(Cと比べて)遅れており、 移植性問題の解決には ad-hoc な(=その場しのぎの)方法をとらざるをえなかった この為、OSSの世界ではC++ではなくCを選ぶプロジェクトが多数派になってしまった ....などといふ、歴史的な理由がある(ソースは失念で、記憶はかなり曖昧) これに付け加えると、こうしてC++の対応がもたもたしているうちに、 最初から移植性を考慮して設計されたJava/C#やスクリプト系といった C++以外の新しいオブジェクト指向言語に対する人気が高まっていった 結果としてC++は移植性問題の解決を果たしたけど時すでに遅し、 現時点だとC++の位置付けは昔ほど確固たるものではなくなってしまっている
|
- 関数型プログラミング言語Haskell Part25
489 :デフォルトの名無しさん[sage]:2014/04/12(土) 02:37:13.07 ID:owT3sDzh - homonym
同音異義語 pole (柱)と pole (極), butter (バター)と butter (頭で突く獣), meat と meet などのように発音が同一で意義·語源(時につづり)の異なる語をいうが, 時には homophone および homograph と同義に用いる (研究社 新英和大辞典)
|