- ベストアンサー
classを使用した時の考え方について
- クラスを使用した場合の開発方法とは?
- Excel VBAでファイル内の行数を取り込む方法とは?
- Case1とCase2の違いは?
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
オブジェクト指向は型から入っても分かり難いでしょう。 その意味から入るべきだと常々思っています。 その意味とは何ぞや、というのを短い文章で説明できたらいいのですが、それは無理です。 どのような意味を考えるかというと、 開発のコストを下げる。 エラーが出難くする。 メインテナンスが出来易くする。 などという目的で考えます。 以上の価値観を踏まえた上で、オブジェクト指向というツールを使うわけです。 物は使い方次第で毒にも薬にもなります。 今回の疑問は、ブラックボックス化とオープン化のテーマとも言えますが、残念ながら例題が稚拙過ぎて、そのような価値観で論議出来ません。 結論から言えば、ファイルを扱うクラスであれば、ファイルのオープン・クローズは、クラスのnew/deleteで行うに決まっています。 メインで一々オープン・クローズするくらいならクラス化する意味もサブルーチンにする意味も全くありません。と言いますか、クラスを使う方が悪い、とさえ言えます。 例題はもっと機能的にまとまっていないと意味が無いでしょう。 その機能の意味から考えて、メソッドを1つにすべきか、幾つかのメソッドに分けるかを考えます。 一般論では、1つのメソッドには1つの機能ということです。 機能とはどのレベルの仕事かというと、実は相対的な問題なので、システムの機能、プログラムの機能、クラス、メッソッドの機能と段階を置かなければなりません。 言葉の遊びに感じるかもしれませんが重要なことで、次のことが言えます。 1つのシステムは10程度のサブシステムで構成される。 それが出来ないようであれば、システムの概念もサブシステムの概念も固まりきっていないと言えます。 プログラムも、幾つかのクラスで構成され、クラスはその仕組やメッソッドで構成されます。 理想は機能名が付けられるかどうかです。 適切な名前が付けられないものは、設計がまだ完成出来ていないと言えます。 人が作り、人がメインテナンスをすることを考えると、命名が如何に重要で思想的にも技術的にも大きな意味を持っていることが分かると思います。 そのような意味から考えても、ファイルをオープンするものはファイル管理の関数群に存在しますので、ファイルオープンするメソッドの存在は名前も機能もダブりなので存在意味はありません。逆に存在しないほうが良いです。物事が複雑化するだけですから。
お礼
インスタンスメソッドを多数使用して処理するのが普通なのか、インスタンスメソッドの使用は少なくし、インスタンス内で処理を行わせるのが普通なのか疑問に思った次第です。 稚拙なコードと例題を出してしまい、ファイル処理のメソッドについて質問しているかの様な誤解を与えて申し訳ないです。 ただ、趣味でやっているレベルでは、知ることができなかった、以下のお話は参考になりました。 >一般論では、1つのメソッドには1つの機能ということです。 >機能とはどのレベルの仕事かというと、実は相対的な問題なので、システムの機能、プログラムの機能、クラス、メッソッドの機能と段階を置かなければなりません。 >1つのシステムは10程度のサブシステムで構成される。 >それが出来ないようであれば、システムの概念もサブシステムの概念も固まりきってい>ないと言えます。 >理想は機能名が付けられるかどうかです。 >適切な名前が付けられないものは、設計がまだ完成出来ていないと言えます。 Tasuke22 さん、ありがとうございました。