- ベストアンサー
オブジェクト指向について
C#でプログラミングをしているのですが、オブジェクト指向を一切使わずに作っています。 作っていくにしたがってツールが重くなってきたのですが、オブジェクト指向を使ってい書いたほうがアプリケーションは軽くなりますか?
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
描画のやり方がまずいとか、スレッドにすべき部分をしていないとかじゃないでしょうか。 オブジェクト指向と速度には直接の関係はありません。 ただ、ちゃんとオブジェクト指向できる人は、大抵プログラムの設計や最適化もちゃんと出来ると思います。
その他の回答 (2)
- lv4u
- ベストアンサー率27% (1862/6715)
>>作っていくにしたがってツールが重くなってきたのですが、オブジェクト指向を使ってい書いたほうがアプリケーションは軽くなりますか? オブジェクト指向は、大規模・複雑なシステムで実力を発揮します。 プログラムが大きくなると、「起動が遅い=重い」になりがちですが、オブジェクト指向の考え方でプログラム設計をやり直し、スクラッチ&ビルドをすれば、モジュールがいくらか小さくなり、軽くなる可能性があると思います。もちろん無駄の削除で効率もアップする可能性もありますね。 また、初期処理が完全に終わらない段階で画面表示をすれば、見掛け上、起動が軽くなったように見えますよ。 ただし、もし現在でも無駄が無いコードであって「軽さ=処理の速さ」を求めているなら、アルゴリズムの見直しなども同時に考えたほうがいいと思います。 それから、C#の3.0以降は、ジェネリックなどに加えて、ラムダ式やLINQが使えるようになっていますので、それらを使いこなせば、さらに軽くなる可能性があると思います。 なお、ラムダ式が導入された3.0以降は、オブジェクト指向の基本ルールを破ることが可能になり、それを利用したコーディングはメリット大のようです。また、書籍を読むと、マイクロソフトでは、メタ・プログラミングが流行っているようにみえます。 こういった手法を使うことで、実行速度が速くなる保証はありませんが、コードの柔軟性が増大し、コーディング量は減ると思います。
- kmee
- ベストアンサー率55% (1857/3366)
オブジェクト指向と、速度との間に、直接の関係はありません。 単に、効率の悪いプログラムになっているだけでしょう。 オブジェクト指向を活用して効率よく書けるかもしれませんし、もっと根本的に考えなおす必要があるかもしれません。