[671] Re:オブジェクト指向「初」入門
投稿者:Rq
2007/02/20 02:13:25
こんばんは。前回は、はじめてであるのに名乗らずに失礼しました。
自分が浅学なのを暴露してしまうような気がしますが…こういう理解でいいのかな、と
少し確認の意味で書いてみます。
CES さん:
>どの程度のことを「大規模」と言うかわかりませんが、オブジェクト指向が適用できない(適用する必要が無い)ほど小規模なものとなると、せいぜい 50 行…いや、20 ~ 30 行程度のプログラムになってしまうかなー、と。
まさにその程度のプログラムにおいて、そしてそこから大きくしていく過程において、のこと
を自分は想定していました。
for文やif文の学習という過程から、だんだんと大きなプログラムを組んでいく場合において、
オブジェクト指向をうまく取り入れられないかな、と考えたわけです。
>> ・プログラムを分割することが大切
>
>YES。それすげぇ大切。
この部分で、前にタイガーさんがおっしゃっていた
>こうすることで、依存関係を親側に集中化でき、単純化できます。
というようなことを実現するために、分割が必要になってくるのだ、と自分は理解しています。
しかし、これだとサブルーチンという考え方だけで大丈夫だという記述もあり、どのように
コードを組めばオブジェクト指向プログラミングとなるのか、というところが未だに自分の
中で曖昧になってしまっています。
いろいろなオブジェクト指向入門で見た「コードの再利用」というのも、なんだか疑わしい
と思っています。継承することによって再利用というのがしっくりこなかったです。そこで
デザインパターンから継承の利点などを見つけれればと思いましたが、自分にはまだ荷が
重かったようでした。
>目的が良くわかんないです。
>まず、「オブジェクト指向」と「手続き型」は対立しません。
>現在主流のオブジェクト指向言語は、手続き型言語に、オブジェクト指向のサポートを加えたものです。
>ですから、「手続き型の中でオブジェクト指向を実践」するということは、立派にオブジェクト指向です。
>
>「手続き型の中でオブジェクト指向を実践」とは、どんなことを意図されて書かれたのでしょう?
いろいろな人がオブジェクト指向プログラミングの特徴について書いていますが、
オブジェクト指向プログラミングは、堅牢なコードを書いていく技術であり、そのために
データの抽象化や、マルチプルインスタンス(これは堅牢なコードのためじゃないかも
しれませんが)があるのかな、と思っています。
そのなかで、技術的なアプローチから入っていこう、とした場合に、まず何を理解して
実践すればいいのかが、現在のオブジェクト指向ではまったくといっていいほど分からない
のでは、と思った次第です。
確かに、「再」入門の人々にとっては当たり前なのかもしれませんが、「初」入門の
人にとっては、ということです。(ということで、この質問はかなりこの掲示板の趣旨
からは離れているのかな、と思います。しかし、「初」入門の自分がいろいろな入門を
見てきた中で、一番しっくりきたのがこの「再」入門であったので、何かしらそういう
視点からの助言が得られるのでは…と思い、提示しました(大変参考になりました)。)
>まぁ、最初のうちはわからないなりに模索して失敗してみろって事ですね。
>そのうち、だんだんとありがたみがわかってくると思います。
ということなので、今自分が実践できることは、プログラムを分割して、単一の仕事
だけをさせるようにし、責任の所在を分かりやすくしてみることかな、とおもいます。
そして、これから挑戦していくものとして、(ぱ) さんがおっしゃっていた
>上に挙げたX-Drawでは、Shape(図形)にdraw()メソッドを付けることで、
>プログラムのあちこちにShapeの種類による分岐(Cならswitch case, Pascalなら
>case of文ですか)を書くことを避けることができ、図形の追加が容易にできるので、
>これはまさに上のページやOOSCで挙げている例と合致していると思うのですが…
という部分から、if文やcase文を使わないですむコードを書いてみたいと思っています。
具体的すぎる話だけだと、抽象度の高い設計ができないということなので、
データの抽象化というものを具体的にコードにできるようにしたいと思っています。
やってみて考えてみて、経験から分かってくるというのが唯一の正解である、という
のは理解できるのですが、具体的にこういう学習をしてみようと思っていると書くこと
によって、自分の進んでいるのがオブジェクト指向なのか、それとも間違っているのか
について助言が得られたらな、と思っています。