プログラム設計の複雑さが増すと、構造化されたプログラミング方法では十分ではありません。十分ではないという根本的な原因は、コードを再利用するのが不便であることです。オブジェクト指向の方法が生まれ、継承することにより包括的なコード再利用機能が実現しました。多くの学生は、インタビュー中に、オブジェクト指向のプログラムデザインについての質問についてよく尋ねられます。私は彼に、あなたが言葉を言う限り、それはパラダイムのプログラム設計(テンプレート)を詰めるのに十分であると言いました。その後、学生は再びこの質問に遭遇し、単純な答えだけで、相手は学生を見ました(学生は後で私に誇りを伝えました)。なぜ?徹底的な経験と実践の後にのみ、この本質を洗練させることができるからです。
オブジェクト指向の設計方法とアイデアは、1970年代初頭に実際に提案されています。目的は次のとおりです。義務プログラムは、機能ごとにデータを操作する必要があります。このように、データのパッケージは、すべてのコードを操作することができます。次に、オブジェクト指向のオブジェクトを使用しなくても、特定のデータにアクセスしたい場合、関数を呼び出してアクセスできますか?はい、それは本当ですが、強制されていません。人々は不活性です。忘れて、直接i ++。ハハ、この怠inessのために、プログラムがバグから抜け出すと、キャッチするのは簡単ではありません。オブジェクト指向は必須であり、コンピレーション段階から怠zyな問題を解決しました。
偶然にも、オブジェクト指向の考えは、実際に私たちの日常生活と一致しています。たとえば、私はティーカップを捨てる予定です、どうすればそれを投げることができますか?シンプルすぎて、ティーカップを拾い、ゴミ箱まで歩いて、投げてください!このプロセスを分析することに注意してください。最初にオブジェクトを選択し、次にこのオブジェクトスローに移動します。各オブジェクトを適用できるアクションは制限されています。ティーカップを投げることができ、水を飲むために使用できますできます、あなたは、できます、あなたはできます、あなたはできます、あなたはできます、あなたは、あなたができる、あなたは、あなたができる、あなたができる、あなたはできる、あなたはできる、あなたはできる、あなたはできる、あなたはできる、あなたはできる、あなたはできる、あなたはできます、あなたは、できます、あなたは、あなたが書くことができる、あなたが書くことができる、あなたは裂けることができる、あなたは燃えることができる...言い換えれば、オブジェクトが決定されると、メソッドが決定されます。これが私たちの日常生活です。ただし、誰もが私たちのプログラミングとコンピューターの操作について考えていますが、そうではありません。 DOS操作を実行して、ファイルを削除したい、メソッドはDOSプロンプトの下にあります:c:> delファイル名<Enter>。このプロセスに注意してください。動きは前にあり(del)、オブジェクトは背面(ファイル名)にあります。これはオブジェクト指向の方法の反対です。それで、それは単なる質問ですか、それはどのような影響をもたらしますか?ハハ、誰もがこの現象を見たに違いありません:ファイルが見つかりません残念ながら、コンピューターのレポート:ファイルは読み取りのみです。したがって、DOSの運用は実際に私たちの日常生活の習慣に違反します(もちろん、誰も以前に異議を唱えたことはありません)。現在、使用指向の設計のために、これらの問題は、時間ではなく、編集するときに解決されます。 、時間ではなく、そうではなく、じゃない、しないで、じゃない、しないで、じゃない、しないで、じゃない、しないで、じゃない、しないで、コンピレーションの代わりに、そうではなく、コンピレーションの代わりに、それは解決されず、 、コンピレーションの代わりに、コンピレーションの代わりに、そうではなく、コンピレーションの代わりに、コンピレーションの代わりに解決されず、実行するときに存在するのではありません。 OBJ.FUN()、このステートメントでは、それがオブジェクトであろうと関数であろうと、問題を抱えている場合は、実行中に間違いを犯すのではなく、コンパイルされたときに報告されますワーム。
同時に、オブジェクト指向の問題は、コードの再利用標準性の問題を解決できます。私は属性(変数)のある犬のカテゴリを書いていました:毛むくじゃらの脚、尾のある尾(尾を引っ張った人はオオカミ)、私の鼻は非常に敏感です、私は肉と骨を食べるのが好きです... 。さて、犬は書かれています。しかし、私の実際の人生では、私が育てた犬は私が以前に書いた犬に非常に似ています。つまり、私の犬、それは私の犬です。カールと長い、小さな鼻、小さな鼻、小さな鼻、小さな鼻、 small nose, small nose, small nose, small nose, small nose, small nose, small nose, small nose, small nose, small nose, small nose, small nose, small nose, small nose, small nose, small nose, small nose 、小さな鼻、小さな鼻、小さな鼻、小さな鼻、小さな鼻、小さな鼻、小さな鼻、小さな鼻、小さな鼻、小さな鼻、小さな鼻。小さな口...その結果、私は犬に基づいてHaba Dogsと呼ばれる新しいタイプと新しい機能を送りました。さて、プログラムは終了しており、以前の正しいコードで再利用可能です。これは、オブジェクト指向プログラミングの利点です。私の成功は、巨人の肩に立っているだけでした。もちろん、VCを使用する場合、最も再利用コードはMFCのライブラリです。
OK、ASPの使用方法をご覧ください。
すべての人は、通常、ASPサーバーとしてIISのデフォルトのスクリプト言語VBScriptを使用して、VBSスクリプトとHTMLを混合して特定の機能を実現しました。たとえば、現在のページに最新の5つのレコードを表示する必要があります。それだけです。
1.最初に、::などのデータベースの接続を定義します
以下は参照コンテンツです。
db_path = ../database/cnbruce2005.mdb
conn = server.createObject(adodb.connection)を設定します
connstr = provider = microsoft.jet.oledb.4.0;
conn.open connstr
2.次に、データベース録音コレクションを確立し、関連情報を抽出します
以下は参照コンテンツです。
rs = server.createObject(adodb.oldset)を設定します
sql = [News] by n_id descから上位5 *を選択します
rs.oopen sql、conn、1,1
3.最後に、データはループメソッドを介して表示されます
以下は参照コンテンツです。
rs.eofではありません
respons.write rs(n_title)
rs.movenext
ループ
「最終的なシャットダウンとリリース操作もあります
rs.close
rs = Nothingを設定します
次に、Rs(n_title)を作成します。最終的なWebデザインの必要性については、他のHTMLタグ要素を前後に追加する必要があります。当然、VBSスクリプトとHTMLは混合されました。
それを見てみましょう。これらの5つのレコードを表示する必要がある場合、もちろんすべてのページを設定する必要があります。それが繰り返される方法です。どこで繰り返されますか?どこで繰り返すことはできませんか?
1.データベースの接続の場合、データベース接続ファイルconn.aspが直接確立され、コンテンツは上記の通りです。
2。データベースを使用する必要がある限り、接続を確立する必要があり、データベース接続ファイルへの参照を直接含めることができます。
<! - #file = conn.asp->を含める
では、上記の重複は何ですか?各データベース接続が繰り返されます。これは、いくつかの一般的なコードの反復です。次に、このページに5と6のショー6を表示したいと言ったら、どうすればよいですか?明らかに、これは現在のページのSQLステートメントにのみ変更できます。
OK、見続けてください、まだ繰り返されていますか?はい、SQLクエリ定義を除き、他のものが繰り返されます。
それでは、抽出された数の抽出を定義できますか?いくつか抽出したいのですが、プログラムは書くだけです。その後、この時点で機能は役に立ちます。たとえば、この関数を定義します。
以下は参照コンテンツです。
関数TopNews(TNUM)
rs = server.createObject(adodb.oldset)を設定します
sql = n_id descによる[ニュース]注文からtop&tnum& *を選択
rs.oopen sql、conn、1,1
rs.eofではありません
respons.write rs(n_title)
rs.movenext
ループ
rs.close
rs = Nothingを設定します
エンド関数
次に、TopNews(5)またはTopNews(6)を使用して必要性を完了できます
......一見すると、ASPは関数を使用しているようで、最終的に完了しました。メインプログラム関数は関数モジュールになっているため、この関数を必要に応じて、関数のパラメーター値を完全なエンディング/に変更する必要があります。