ホームページ  >  記事  >  バックエンド開発  >  javascript - オブジェクト指向はまずプロセス指向である必要がありますか? コンポーネント化とモジュール化との類似点と相違点は何ですか?

javascript - オブジェクト指向はまずプロセス指向である必要がありますか? コンポーネント化とモジュール化との類似点と相違点は何ですか?

WBOY
WBOYオリジナル
2016-07-06 13:53:351176ブラウズ

親愛なる先輩方、すべてのオブジェクト指向の人はまずプロセス指向である必要がありますか?
オブジェクト指向プログラミングでは、オブジェクト間の論理関係を素早く整理して特定するにはどうすればよいでしょうか?
オブジェクト指向の柔軟性はどこに反映されていますか?
オブジェクト指向は、より重い開発に適していますよね? 通常の JS でカルーセルなどの小さなエフェクトを記述するには、やはりオブジェクト指向が必要ですか?
JavaScript におけるオブジェクト指向とコンポーネント化の類似点と相違点は何ですか?また、モジュール化との類似点と相違点は何ですか?

返信内容:

親愛なる先輩方、すべてのオブジェクト指向の人はまずプロセス指向である必要がありますか?
オブジェクト指向プログラミングでは、オブジェクト間の論理関係を素早く整理して特定するにはどうすればよいでしょうか?
オブジェクト指向の柔軟性はどこに反映されていますか?
オブジェクト指向は、より重い開発に適していますよね? 通常の JS でカルーセルなどの小さなエフェクトを記述するには、やはりオブジェクト指向が必要ですか?
JavaScript におけるオブジェクト指向とコンポーネント化の類似点と相違点は何ですか?また、モジュール化との類似点と相違点は何ですか?

この質問は内容が多すぎるので、挑発的な方法で話しましょう。

ソフトウェア開発におけるプロセス指向は絶対的であり、プログラム = プロセスの秩序ある実行です。実は以前はプロセス指向という概念はありませんでしたが、オブジェクト指向が登場してからは、それまでの関数を使ってコードを構成する方法と区別するために、関数を使ってコードを構成することをプロセス指向と呼ぶようになりました。 。 (あくまで個人的な意見です)
オブジェクト指向はコードを整理する方法です。さまざまな利点があります。自分で調べてください。

上記からわかるように、プロセス指向またはオブジェクト指向はコードの編成を指し、コンポーネント化とモジュール化はプロジェクト内の機能の編成を指すため、この 2 つは互いに関係がありません。

マイクロエレクトロニクスのメンテナンス中にモジュールが破損した場合は、モジュールを交換するだけです。 したがって、ソフトウェア開発に拡張すると、モジュール化とは、コードが明確にカプセル化され、プロジェクト全体に影響を与えるのではなく、明確な範囲を持つことを意味します。
日常的に使用されるさまざまなツールは、実際にはコンポーネントの概念に基づいており、モジュールの範囲に制限されることなく、頻繁かつ広く再利用されます。

さまざまな質問について、最終的な答えは変わりません。ニーズに応じて、要件を満たすだけです。 コードの可読性、柔軟性、保守性は要件の一部であり、非常に非常に重要であることに注意してください。

非常に簡単な比較:

リーリー

設計内容はたくさんあります。オブジェクト指向とプロセス指向は 2 つの異なる考え方ですが、プロセス指向は分析であり、オブジェクト指向は構築です。コンポーネント化とモジュール化はオブジェクト指向とプロセス指向の産物です(個人的な意見です)

プロセス指向とモジュール型、これらはプログラムを作成するために必要です。
プロセス指向とは分かりやすい、すべてのプログラムはプロセスである
モジュール化も分かりやすい、つまりプログラムのプロセスの中で独立できる部分を分離してプログラムの可読性を確保し、制御するかどうかエラーまたはバグの除去 すべてがより簡潔になります。 C を学習し、その後 C++ を学習した人は、構造体とオブジェクトの違いは何でしょうか。構造体にはメソッドがないと言うと、どちらもコードをモジュール化する役割を果たします。構造体には関数ポインタを定義することもできると思いますが、多くの場合、構造体にはこのポインタと構文上の違いはないと思います。コンストラクタなどについては、構造体の方が単純です。やれ。

私が言いたいのは、オブジェクト指向で最も重要なことは継承であるということです
私が学生の頃、先生は例を挙げました。例えば、人間を親クラスだとすると、教師クラスと生徒クラスです。を導出でき、学生クラスからは男子クラスと女子クラスを導出できます。
しかし、この例は非常にナンセンスで貧弱です。学生は授業を行うときに、これほど多くの無駄な授業を導き出すことはありません。
そして実際、ほとんどの開発者は、プログラムの可読性の低下につながる奇妙なクラスをランダムに派生させることはありません。
それでは、クラスの継承は通常どこで使用されるのでしょうか?
実際の例を教えてください

私は最近 React を書きました。状態を含む各コンポーネントの先頭は次のように書かれています。class XXX extends React.Component{}
ここで、React.Component を継承している限り、コンポーネントには render メソッドがあり、これは次のようになります。クラスのコンテンツは Web ページに表示されます。コンポーネントには、コンポーネントが新しいデータを受信したときに必要なプロセスを実行できる、componentWillReceiveProps メソッドもあります。これらがどのように発動するかは気にする必要はありませんが、確実に発動することはわかっています。これはクラスを継承することで得られる能力です。

同様に、VS を使用して WPF ウィンドウ プログラムなどを開発する場合、フォームも Microsoft の基本ライブラリからクラスを継承するため、フォームには基本的なクリック応答、ドラッグ アンド ドロップ、およびさまざまな機能が含まれます。自分で書く必要はありません。

フレームワークも色々ありますが、フレームワークの基本クラスを継承すれば、フレームワークが提供する機能を取得することができます。

教科書でオブジェクト指向について言及されるときは、通常、ソフトウェア工学について言及されます。また、「人月の神話」という本も同様です。ソフトウェア工学とオブジェクト指向は、プログラマーが大規模なソフトウェアを開発するときに要約するものです。 、家を建てるときと同じように、まず基礎を築きます。基礎が築かれたら、その上にさらに多くの機能を積み上げます。したがって、学生のうちに教科書に従って演習を行うだけでは、オブジェクト指向のさまざまな意味を理解することはできません

ははは。素晴らしい質問ですね。最初にマークして、後で時間をかけて答えます

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。